導航:首頁 > 凈水問答 > php跨站腳本過濾

php跨站腳本過濾

發布時間:2024-03-06 22:04:52

① 如何正確運用PHP filter判斷過濾數據

PHP 5.2以及更高的版本,PHP filter被綁定於系統,它可以對數據進行自動的過濾和判斷。 第一種、PHP filter判斷一個變數的內容是否符合要求 使用函數filter_var,第一個參數是要判斷的變數。第二個參數是判斷的要求,FILTER_VALIDATE_EMAIL表示判斷是否符合email格式。如果變數是類似’[email protected]’的數據,系統就會完整的輸出‘[email protected]’。如果是錯誤的格式,比如’boy’,就會輸出false。如果沒有填寫表單中的email欄位,系統輸出空字元串。$email=‘[email protected]’; echofilter_var($email, FILTER_VALIDATE_EMAIL); 第二種、PHP filter根據要求過濾一個變數的內容 和上面唯一的不同是第二個參數使用FILTER_SANITIZE_EMAIL,輸出的結果會不同。如果變數是類似’[email protected]’的數據,系統就會完整的輸出’[email protected]’。如果是錯誤的格式,比如’boy-afds3′,只要是數字和字母和劃線等email格式中可以出現的內容,系統同樣會完整的輸出’boy-afds3′。如果變數沒有設置內容,系統輸出空字元串。如果是’boy阿三’,系統會把email格式中不允許的東西去除,輸出’boy’。$email=‘[email protected]’; echofilter_var($email, FILTER_SANITIZE_EMAIL); 第三種、PHP filter判斷輸入的變數的內容是否符合要求 使用函數filter_input。第一個參數表示從那裡獲得的數據,INPUT_POST表示通過POST方法傳遞過來,還可以使用INPUT_GET, INPUT_COOKIE, INPUT_SERVER, INPUT_ENV,代表相應的途徑。第二個參數就是數據的名稱。第三個參數代表過濾的要求,FILTER_VALIDATE_EMAIL表示判斷數據是否符合email格式。 假設通過表單的POST過來的一個欄位email。如果是類似 ’[email protected]’ 的數據,系統就會完整的輸出’[email protected]’。如果是錯誤的格式,比如’boy’,就會輸出false。如果沒有填寫表單中的email欄位,系統輸出null,也就是空。 echofilter_input(INPUT_POST, ‘email’,FILTER_VALIDATE_EMAIL); 第四種、PHP filter根據要求過濾輸入的變數的內容 和上面唯一的不同是第二個參數使用FILTER_SANITIZE_EMAIL,輸出的結果會不同。假設通過表單的POST過來的一個欄位email。 如果是類似’[email protected]’的數據,系統就會完整的輸出’[email protected]’。如果是錯誤的格式,比如’boy-afds3′,只要是數字和字母和劃線等email格式中可以出現的內容,系統同樣會完整的輸出’boy-afds3′。如果沒有填寫表單中的email欄位,系統輸出null,也就是空。如果是’boy阿三’源碼天空 ,系統會把email格式中不允許的東西去除,輸出’boy’。 echofilter_input (INPUT_POST,‘email’,

② php 過濾掉超鏈接,及超鏈連內的網頁代碼

用正則表達式過濾掉所有HTML代碼
過濾所有html標簽的正則表達式:
</?[^>]+>

③ 如何防止跨站點腳本攻擊

你好~
XSS漏洞產生的原因:

跨站點腳本的主要原因是程序猿對用戶的信任。開發人員輕松地認為用戶永遠不會試圖執行什麼出格的事情,所以他們創建應用程序,卻沒有使用任何額外的代碼來過濾用戶輸入以阻止任何惡意活動。另一個原因是,這種攻擊有許多變體,用製造出一種行之有效的XSS過濾器是一件比較困難的事情。
但是這只是相對的,對用戶輸入數據的」編碼」和」過濾」在任何時候都是很重要的,我們必須採取一些針對性的手段對其進行防禦。

如何創造一個良好的XSS過濾器來阻止大多數XSS攻擊代碼

1 .需要重點」編碼」和」過濾」的對象
The URL
HTTP referrer objects
GET parameters from a form
POST parameters from a form
Window.location
Document.referrer
document.location
document.URL
document.URLUnencoded
cookie data
headers data
database data

防禦XSS有一個原則:
以當前的應用系統為中心,所有的進入應用系統的數據都看成是輸入數據(包括從FORM表單或者從資料庫獲取到的數據),所有從當前應用系統流出的數據都看作是輸出(包括輸出到用戶瀏覽器或向資料庫寫入數據)
對輸入的數據進行」過濾」,對輸出數據進行」編碼」。這里的」編碼」也要注意,必須針對數據具體的上下文語境進行針對性的編碼。例如數據是輸出到HTML中的那就要進行HtmlEncode,如果數據是輸出到javascript代碼中進行拼接的,那就要進行javascriptEncode。
如果不搞清楚數據具體輸出的語境,就有可能因為HtmlParser()和javascriptParser()兩種解析引擎的執行先後問題導致看似嚴密的」編碼」形同虛設。

2. HtmlEncode HTML編碼
它的作用是將字元轉換成HTMLEntities,對應的標準是ISO-8859-1
為了對抗XSS,在HtmlEncode中要求至少轉換以下字元:
& --> &
< --> <
> --> >
" --> "
' --> '
/ --> /
在PHP中:

htmlentities
http://www.w3school.com.cn/php/func_string_htmlentities.asp
htmlspecialchars
http://www.w3school.com.cn/php/func_string_htmlspecialchars.asp
3. javascriptEncode javascript」編碼」
javascriptEncode與HtmlEncode的編碼方法不同,HtmlEncode是去編碼,而javascriptEncode更多的像轉義,它需要使用」\」對特殊字元進行轉義。從原理上來講,這都符合編碼函數的一個大原則: 將數據和代碼區分開,因為對於HTML Tag來說,我們對其進行」可視化(轉換成可以見字元)」的編碼可以將數據和HTML的界限分開。而對於javascript來說,我們除了要進行編碼之外,還需要對特殊字元進行轉義,這樣攻擊輸入的用於」閉合」的特殊字元就無法發揮作用,從而避免XSS攻擊,除此之外,在對抗XSS時,還要求輸出的變數必須在引號內部,以避免造成安全問題。
escape()
http://www.w3school.com.cn/js/jsref_escape.asp
該方法不會對 ASCII 字母和數字進行編碼,也不會對下面這些 ASCII 標點符號進行編碼: * @ – _ + . / 。其他所有的字元都會被轉義序列(十六進制\xHH)替換。
利用這個編碼函數,不僅能防禦XSS攻擊,還可以防禦一些command注入。

一些開源的防禦XSS攻擊的代碼庫:

PHP AntiXSS
這是一個不錯的PHP庫,可以幫助開發人員增加一層保護,防止跨站腳本漏洞。
https://code.google.com/p/php-antixss/
xss_clean.php filter
https://gist.github.com/mbijon/1098477
HTML Purifier
http://htmlpurifier.org/
xssprotect
https://code.google.com/p/xssprotect/
XSS HTML Filter
http://finn-no.github.io/xss-html-filter/

原文地址:http://resources.infosecinstitute.com/how-to-prevent-cross-site-scripting-attacks/

希望可以幫助到你~望採納哦~謝謝~

④ 如何實現php的安全最大化怎樣避免sql注入漏洞和xss跨站腳本攻擊漏洞

使用php安全模式復

伺服器要做制好管理,賬號許可權是否合理。

假定所有用戶的輸入都是「惡意」的,防止XSS攻擊,譬如:對用戶的輸入輸出做好必要的過濾

防止CSRF,表單設置隱藏域,post一個隨機字元串到後台,可以有效防止跨站請求偽造。

文件上傳,檢查是否做好效驗,要注意上傳文件存儲目錄許可權。

防禦SQL注入。

避免SQL注入漏洞

1.使用預編譯語句

2.使用安全的存儲過程

3.檢查輸入數據的數據類型

4.從資料庫自身的角度考慮,應該使用最小許可權原則,不可使用root或dbowner的身份連接資料庫。若多個應用使用同一個資料庫,也應該為資料庫分配不同的賬戶。web應用使用的資料庫賬戶,不應該有創建自定義函數,操作本地文件的許可權。

避免XSS跨站腳本攻擊

1.假定所有用戶輸入都是「邪惡」的

2.考慮周全的正則表達式

3.為cookie設置HttpOnly,防止cookie劫持

4.外部js不一定可靠

5.出去不必要的HTML注釋

6. 針對非法的HTML代碼包括單雙引號等,使用htmlspecialchars()函數。

閱讀全文

與php跨站腳本過濾相關的資料

熱點內容
19款騎俊空調濾芯在哪裡 瀏覽:712
蒸餾壺的作用 瀏覽:303
ro膜和mro膜 瀏覽:294
cass工藝處理工業廢水設計計算 瀏覽:76
廚房中央水處理設備北京 瀏覽:609
做河橋底污水管一般多少錢一米 瀏覽:143
廈門哪裡有售康佳凈水機 瀏覽:118
dmf污水處理工程 瀏覽:592
日立3250x投影儀過濾網維護 瀏覽:58
光學薄膜樹脂 瀏覽:950
可口可樂純凈水質量怎麼樣 瀏覽:219
汽車空調濾芯尺寸哪裡可以看到 瀏覽:408
3m反滲透凈水怎麼安裝 瀏覽:255
錯端過濾 瀏覽:574
夏天屋裡有味道用什麼凈化器 瀏覽:30
凈水機出水率怎麼算 瀏覽:198
處理豆製品污水什麼時候加燒鹼 瀏覽:1000
自體血回輸可以用3000洗嗎 瀏覽:620
樹脂透明瓦設備 瀏覽:847
提升泵井作用 瀏覽:336