線上服務(wù)咨詢
Article/文章
記錄成長點(diǎn)滴 分享您我感悟
您當(dāng)前位置>首頁 > 知識 > 網(wǎng)站建設(shè)
幾個(gè)有用的過濾函數(shù)
發(fā)表時(shí)間:2019-07-30 16:30:17
文章來源:沈陽軟件開發(fā)
標(biāo)簽:網(wǎng)站建設(shè) 小程序開發(fā) 小程序制作 微信小程序開發(fā) 公眾號開發(fā) 微信公眾號開發(fā) 網(wǎng)頁設(shè)計(jì) 網(wǎng)站優(yōu)化 網(wǎng)站排名 網(wǎng)站設(shè)計(jì) 微信小程序設(shè)計(jì) 小程序定制 微信小程序定制
瀏覽次數(shù):0
PHP中有許多方便的函數(shù)可以幫助您避免SQL注入和XSS攻擊?,F(xiàn)在讓我們來看看為項(xiàng)目增加安全性的這些函數(shù)。但請注意,這只是一些常用功能的列表,可能并不全面,但我相信它們對您的項(xiàng)目非常有幫助。
Mysql_real_escape_string(string sqlQuery):
●考慮到連接的當(dāng)前字符集,轉(zhuǎn)義SQL語句中使用的字符串中的特殊字符。一個(gè)非常有用的函數(shù),可以有效地避免SQL注入。
將轉(zhuǎn)換以下字符:
\ X00,\ N,\ r \”,”,\ X1A
在執(zhí)行sql語句之前,使用此函數(shù)執(zhí)行sql查詢將會(huì)破壞底座中的一些危險(xiǎn)。
但是現(xiàn)在在更成熟的項(xiàng)目中,通常建議使用像PDO這樣的數(shù)據(jù)庫持久層來處理所有數(shù)據(jù)庫操作。它們代表了一種更先進(jìn)的數(shù)據(jù)庫操作處理技術(shù),在安全性和數(shù)據(jù)讀寫速度方面比舊的mysql_ * api強(qiáng)大得多。
Addslashes():
將某些數(shù)據(jù)插入數(shù)據(jù)庫時(shí),此功能非常有用。它可以在一個(gè)反引號之前,以便插入數(shù)據(jù)而不會(huì)出錯(cuò)。但它的使用與php.ini中的設(shè)置有關(guān) - magic_quotes_gpc
1.對于PHP magic_quotes_gpc=on,我們可以對輸入和輸出數(shù)據(jù)庫的字符串?dāng)?shù)據(jù)執(zhí)行addslashes()和stripslashes()操作,數(shù)據(jù)將正常顯示。
如果此時(shí)對輸入數(shù)據(jù)執(zhí)行addlashes(),則必須使用stripslashes()在輸出時(shí)刪除額外的反斜杠。
2.對于PHP magic_quotes_gpc=off
必須使用addslashes()處理輸入數(shù)據(jù),但不需要使用stripslashes()來格式化輸出,因?yàn)閍ddslashes()不會(huì)向數(shù)據(jù)庫寫入反斜杠,只是為了幫助mysql完成sql語句的執(zhí)行。
[stripslashes():刪除addslashes()函數(shù)添加的反斜杠。 】
Htmitientities():
處理輸出的一個(gè)非常有用的功能。它用于將可能導(dǎo)致XXS攻擊的某些字符轉(zhuǎn)換為html實(shí)體。瀏覽器顯示這些字符時(shí)這些字符是正常的,但是當(dāng)您查看其源代碼時(shí),他將不會(huì)顯示這些特殊字符。這樣,例如
輸出:
約翰& “亞當(dāng)斯”
源代碼:
約翰&安培; '亞當(dāng)斯';
輸出:
<>
源代碼:
<&的GT,GT;
有效地編碼這些符號可以避免XSS攻擊。
用htmlspecialchars():
它與上面的函數(shù)相同,但它更常見,因?yàn)閔tmlentities()將html標(biāo)準(zhǔn)中定義的所有字符轉(zhuǎn)換為相應(yīng)的html實(shí)體,這將使您的輸出更不可讀(Html實(shí)體列表http://www.w3school.com。 CN /標(biāo)簽/html_ref_entities.html)。因此,使用htmlspecialchars()只是將一些預(yù)定義的字符(導(dǎo)致問題)轉(zhuǎn)換為html實(shí)體。例如:
&安培; (和)成為&
“(雙引號)變?yōu)椤?/p>
'(單引號)變?yōu)?
< (小于)變?yōu)椋t;<>
> (大于)變?yōu)椋t;
所以,在某些項(xiàng)目中,我仍然使用htmlspecialchars()來處理html的輸出。他在安全方面更具體。
Strip_tags():通常用于輸出以去除HTML,XML和PHP標(biāo)記。
原型:strip_tags(string,allow)
String表示輸入字符串,allow表示未刪除的標(biāo)簽。您可以使用allow來自定義要過濾的標(biāo)簽
Md5():
將字符串轉(zhuǎn)換為32位哈希值(無法進(jìn)行反向解碼)的函數(shù)。任何字符串都可以通過此函數(shù)獲得唯一的32位字符串。但是,現(xiàn)在使用此功能時(shí),需要注意一些數(shù)據(jù)庫記錄中的大量md5值,通過強(qiáng)力枚舉破解密碼,因此在使用時(shí),可以先在原始字符串中添加一個(gè)圖層。密度,然后使用md5()哈希,將獲得更好的結(jié)果。
Sha1():
一個(gè)類似于md5()和類似的函數(shù),但他使用不同的算法生成一個(gè)40個(gè)字符的字符串??梢钥紤]在項(xiàng)目中使用。
Intval():
也許您認(rèn)為此功能不是安全功能。但在某些情況下,它可以很好地保護(hù)您的代碼。從用戶收集的一些數(shù)據(jù)(如ID,密碼和用戶名)可能會(huì)消除一些安全風(fēng)險(xiǎn)。畢竟,這是最受打擊的。
網(wǎng)站建設(shè),小程序開發(fā),小程序制作,微信小程序開發(fā),公眾號開發(fā),微信公眾號開發(fā),網(wǎng)頁設(shè)計(jì),網(wǎng)站優(yōu)化,網(wǎng)站排名,網(wǎng)站設(shè)計(jì),微信小程序設(shè)計(jì),小程序定制,微信小程序定制