• <kbd id="qyk40"></kbd>
  • <strike id="qyk40"></strike><samp id="qyk40"><pre id="qyk40"></pre></samp>

    在PHP 中有許多方便的函數可以幫助你免于類似于 SQL注入,XSS攻擊?,F在讓我們來看一下這些能夠給你的項目增加安全性的函數吧。但是,請注意,這里只是一些常用的函數的列表,也許他們并不全面,但是我相信他們都是對你的項目是非常有幫助的。

     

    mysql_real_escape_string( string sqlQuery ) :

    ●轉義 SQL 語句中使用的字符串中的特殊字符,并考慮到連接的當前字符集。一個非常有用的函數,可以有效地避免 SQL 注入。

    以下字符會被轉換:

    \x00,\n,\r,\,’,”,\x1a

     

    在執行sql語句之前,對要將執行的sql query 使用該函數處理,會將一些危 險扼殺在搖籃中。

    但是現在一般在較為成熟的項目中,一般比較推薦使用類似 PDO 這樣的數據庫持久層來處理所有的數據庫操作。他們代表著更為先進的數據庫操作處理技術,在安全性,數據讀寫的速度上逗比那些古老的 mysql_* api 強大了不少。

    addslashes() :

    在將一些數據插入到數據庫中時,這個函數會非常有用,它可以在單引號前加上反斜杠,使得數據在插入時不會出現錯誤。但是它的使用與php.ini 中的一項設置有關系 —  magic_quotes_gpc

     

    1. 對于PHP magic_quotes_gpc=on的情況, 我們可以不對輸入和輸出數據庫的字符串數據作addslashes()和stripslashes()的操作,數據也會正常顯示。

    如果此時你對輸入的數據作了addslashes()處理,那么在輸出的時候就必須使用stripslashes()去掉多余的反斜杠。

     

    2. 對于PHP magic_quotes_gpc=off 的情況

    必須使用addslashes()對輸入數據進行處理,但并不需要使用stripslashes()格式化輸出,因為addslashes()并未將反斜杠一起寫入數據庫,只是幫助mysql完成了sql語句的執行。

    【stripslashes() :刪除由 addslashes() 函數添加的反斜杠。】

    htmlentities() :

    一個非常有用的用來處理輸出的函數。它用來將一些可能導致XXS攻擊的字符轉化為html實體,這些字符在瀏覽器顯示的時候是正常的,但是當你查看它的源代碼時,實際上這些特殊字符必不會是他顯示的那樣,例如

    輸出:

    John & ‘Adams’

    源碼:

    John & 'Adams';

    輸出:

    <>

    源碼:

    <>gt;

    編碼這些符號,有效地避免了XSS 攻擊。

    htmlspecialchars():

    和上面的函數是一樣的,但是它更常用一些,因為 htmlentities() 是將所有的有在html 標準中定義了的字符轉換成他們對應的html實體,這樣會是你的輸出缺乏易讀性(html 實體列表 http://www.w3school.com.cn/tags/html_ref_entities.html)。所以呢,使用 htmlspecialchars() 只是將一些 預定義的字符(就是會導致出現問題的)轉換為html實體。例如:

    & (和號) 成為 &

    ” (雙引號) 成為 ”

    ‘ (單引號) 成為 ‘

    < (小于) 成為 <

    > (大于) 成為 >

    所以,在一些項目中,我還是常常使用 htmlspecialchars() 來處理html 的輸出的。他在安全這一方面做得更具體一些。

     

    strip_tags():  一般在輸出時使用,將HTML、XML 以及 PHP 的標簽剝去。

    函數原型: strip_tags(string,allow)

    String 代表輸入的字符串,allow 代表 不刪除的標簽,你可以通過 allow 來自定義過需要濾掉的標簽

    md5() :

    一個將字符串轉換為一個32位的哈希值的函數(不能逆向解密),任何一個字符串都能通過這個函數獲得一個唯一的32位字符串。但是,現在使用這個函數時,需要注意有一些數據庫記錄了大量的md5 值,通過暴力枚舉的方式來破解你的密碼,所以在使用的時候,你可以先將你的原字符串加一層密,然后再使用md5()哈希,會獲得更好的效果。

    sha1() :

    和md5() 和相似的一個函數,但是他使用不同的算法生成一個 40個字符的字符串??梢栽陧椖恐锌紤]使用。

    intval() :

    也許你認為這個函數不是一個 security function。但是它在某些情況下可以很好地保護你的code。對從用戶收集到的一些數據例如 ID,password,username處理,也許可以消除一些安全隱患,畢竟這里是重災區。

     

    穩定

    產品高可用性高并發

    貼心

    項目群及時溝通

    專業

    產品經理1v1支持

    快速

    MVP模式小步快跑

    承諾

    我們選擇聲譽

    堅持

    10年專注高端品質開發
    • 返回頂部
    日韩精品中文字幕第2页| 日韩精品久久不卡中文字幕| 国产suv精品一区二区33| 精品无码人妻一区二区三区不卡 | av国内精品久久久久影院| 香蕉视频在线精品| 国产亚洲蜜芽精品久久| 无码精品不卡一区二区三区| 久久亚洲国产精品一区二区| 国产成人精品综合久久久| 日韩丰满少妇无码内射| 久久国产精品99精品国产| 国产精品香港三级国产AV| 日韩精品一区二区三区视频| 国产精品视频一区国模私拍| 九九精品久久久久久噜噜| 国产成人精品综合网站| 揄拍自拍日韩精品| 亚洲AV永久精品爱情岛论坛| 国产线视频精品免费观看视频| 亚洲国产精品自在自线观看| 亚洲精品视频专区| 99精品中文字幕| 国产偷国产偷高清精品| 日韩精品亚洲专区在线观看| 成年日韩片av在线网站| 日韩人妻无码精品久久免费一| 日韩土豪美女在线视频观看| 国产精品jizzjizz| 91精品国产91久久久久久蜜臀| 99精品国产在热久久婷婷| 日韩精品国产另类专区| 久久9精品久久久| 香蕉久久夜色精品国产小说| 久久99蜜桃精品久久久久小说| 亚洲AV无码久久精品狠狠爱浪潮 | 久久精品a一国产成人免费网站| 国产成人综合久久精品红| 亚洲国产精品乱码一区二区| 国产一区二区精品久久凹凸| 精品久久久久久国产三级|