<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jialisoftw

    PHP防SQL注入函數:mysql_real_escape_string

    我們在使用php+mysql時,一般情況下都要接受用戶輸入的數據,這就意味著很大的風險,因為用戶可能輸入正常數據,也可能輸入惡意的代碼。作為developer,必須嚴格過濾用戶的數據,來保護我們的網站安全。
        PHP中可以使用 mysql_real_escape_string 函數來過濾非法字符。本函數將 string 中的特殊字符轉義,并考慮到連接的當前字符集,因此可以安全用于 mysql_query()。
        mysql_real_escape_string() 函數轉義 SQL 語句中使用的字符串中的特殊字符。下列字符受影響:
    \x00
    \n
    \r
    \
    '
    "
    \x1a
    如果成功,則該函數返回被轉義的字符串。如果失敗,則返回 false。
        飄易利用下面的這個函數,就可以有效過濾了。
    function safe($s){ //安全過濾函數
    if(get_magic_quotes_gpc()){ $s=stripslashes($s); }
    $s=mysql_real_escape_string($s);
    return $s;
    }
        或者在conn公共連接文件里加入,這樣就無需修改代碼了:
    if(get_magic_quotes_gpc()) { $_REQUEST = array_map( 'stripslashes', $_REQUEST); }
    $_REQUEST = array_map( 'mysql_real_escape_string', $_REQUEST);
        mysql_real_escape_string語法
    mysql_real_escape_string(string,connection)
    參數 描述
    string 必需。規定要轉義的字符串。
    connection 可選。規定 MySQL 連接。如果未規定,則使用上一個連接。
        其實,一般的還可以利用這個函數 addslashes 進行轉義。作用同樣為對GET、POST、COOKIE過來的字符串進行轉義處理,通常與 magic_quotes_gpc 結合使用。
        下面講述下addslashes  、magic_quotes_gpc、mysql_real_escape_string 三者之間的區別:
        1、addslashes  與 mysql_real_escape_string,同樣的作用是經過轉義后,可直接插入數據庫, 國內很多PHP coder是使用addslashes函數防止SQL注入,但是建議大家使用后者轉義數據。
        舉例說明:addslashes的問題在于黑客可以用0xbf27來代替單引號,而addslashes只是將0xbf27修改為0xbf5c27,成為一個有效的多字節字符,其中的0xbf5c仍會被看作是單引號,所以addslashes無法成功攔截。
        兩者何時用:addslashes也不是毫無用處,它是用于單字節字符串的處理,多字節字符還是用mysql_real_escape_string更加安全。
        2、magic_quotes_gpc的說明,在首次客戶端運行時,可用第一條的舉例,對 magic_quotes_gpc 進行 $_['name'] 判斷,可轉義處理。
        3、 mysql_real_escape_string和 mysql_escape_string 這2個函數的區別:
        mysql_real_escape_string 必須在(PHP 5以上、PHP 4 >= 4.3.0)版本的情況下才能使用。否則只能用 mysql_escape_string 。
        兩者的區別是:mysql_real_escape_string 考慮到連接的當前字符集,而 mysql_escape_string 不考慮。 
        4、實際開發中,正確的邏輯處理,如下:
        首先,檢查 magic_quotes_gpc 是否配置為自動轉義斜線,若為on,應該調用stripslashes去掉$_REQUEST、$_GET,$_POST、$_COOKIE的轉義斜線;然后,查詢/寫入/更新數據至mysql時,再使用mysql_real_escape_string進行字符轉義
    [參考]:
    1、討論magic_quotes_gpc、mysql_real_escape_string、addslashes的區別及用法
    http://blog.unvs.cn/archives/magic_quotes_gpc-mysql_real_escape_string-addslashes.html

    posted on 2013-01-24 12:38 飛豬一號 閱讀(2130) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    <2013年1月>
    303112345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    統計

    常用鏈接

    留言簿

    隨筆檔案

    友情鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费观看大片毛片| 日本免费中文字幕在线看| 亚洲中文字幕无码久久精品1 | 一级看片免费视频囗交| 国产精品国产午夜免费福利看 | 亚洲欧美黑人猛交群| 免费一本色道久久一区| 亚洲中文字幕久在线| 青娱乐免费在线视频| 亚洲日本VA午夜在线电影| 在线观看成人免费视频| 日韩精品亚洲专区在线影视| 国产免费观看黄AV片| 香港特级三A毛片免费观看| www国产亚洲精品久久久日本| 久久成人免费播放网站| 亚洲AV日韩精品久久久久久| 色欲国产麻豆一精品一AV一免费 | 日韩高清在线免费观看| 亚洲成av人无码亚洲成av人| 国产免费131美女视频| 一区二区三区免费精品视频| 国产精品亚洲片在线| 国产精彩免费视频| 亚洲AV无码一区二区三区电影| 国产在线观看免费视频播放器| 国产裸体美女永久免费无遮挡 | 毛片大全免费观看| 激情小说亚洲色图| 国产亚洲精品va在线| 99久久久精品免费观看国产 | 中文字幕视频免费| 亚洲综合激情五月色一区| 四虎在线播放免费永久视频| 国产又黄又爽又大的免费视频 | 久久久亚洲欧洲日产国码aⅴ| 无码一区二区三区免费视频| 一级人做人爰a全过程免费视频| 亚洲福利在线视频| 在线观看亚洲免费| 少妇人妻偷人精品免费视频|