<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

    統計

    常用鏈接

    留言簿

    隨筆檔案

    友情鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲欧洲久久精品| 免费黄网站在线看| 亚洲成AⅤ人影院在线观看| 亚洲AV成人一区二区三区观看| 毛片免费视频播放| 亚洲最大的成人网站| 成人黄页网站免费观看大全| 亚洲人成图片网站| AV免费网址在线观看| 亚洲最大的成人网| 日韩在线免费电影| 国产成人va亚洲电影| 一本色道久久88亚洲综合| 丁香六月婷婷精品免费观看| 亚洲综合区小说区激情区| 国产免费MV大全视频网站| 国产亚洲日韩在线三区| 中文在线观看永久免费| 亚洲国产精品人久久| 99在线精品视频观看免费| 中国亚洲呦女专区| 啊v在线免费观看| 一区免费在线观看| 久久久久久久尹人综合网亚洲| 免费av片在线观看网站| 亚洲综合激情另类小说区| 中文字幕影片免费在线观看| 亚洲国产成人久久精品软件| 一区国严二区亚洲三区| 国产免费久久久久久无码| 久久噜噜噜久久亚洲va久| 久久福利资源网站免费看| 亚洲情A成黄在线观看动漫软件| 暖暖免费高清日本中文| 高清免费久久午夜精品| 亚洲VA中文字幕无码一二三区 | 三级片免费观看久久| 亚洲国产另类久久久精品| 国产精品1024永久免费视频| 在线aⅴ亚洲中文字幕| 亚洲阿v天堂在线2017免费|