避免php的SQL Injection說明:
一、php當中:
1.打開magic_quotes_gpc= On
php.ini當中magic_quotes_gpc=off這一行關係著資料庫資料傳輸驗證的問題,開為off意思就是說資料庫數據的字串『存』、『取』完全不經過任何過濾處理。這樣子SQL Injection就很開心了,所以記得要開為On(打開後要注意反斜線"\"的處理,輸入的字符串中的單引號,雙引號和其它一些字符前將會被自動加上\)
2.避免被全域變數影響安全性,確認register_globals= Off
3.錯誤訊息自己到log看吧,這個東西我覺得可以考慮關掉。變成display_errors = Off
一、php當中:
1.打開magic_quotes_gpc= On
php.ini當中magic_quotes_gpc=off這一行關係著資料庫資料傳輸驗證的問題,開為off意思就是說資料庫數據的字串『存』、『取』完全不經過任何過濾處理。這樣子SQL Injection就很開心了,所以記得要開為On(打開後要注意反斜線"\"的處理,輸入的字符串中的單引號,雙引號和其它一些字符前將會被自動加上\)
2.避免被全域變數影響安全性,確認register_globals= Off
3.錯誤訊息自己到log看吧,這個東西我覺得可以考慮關掉。變成display_errors = Off
二、其他在php操作mysql函數都中加入驗證的常用方法有
*addslashes() 是強行加\;
*mysql_real_escape_string() 會判斷字符集,但是對PHP版本有要求;
*mysql_escape_string不考慮連接的當前字符集。
資料來源:PHP防止注入
*addslashes() 是強行加\;
*mysql_real_escape_string() 會判斷字符集,但是對PHP版本有要求;
*mysql_escape_string不考慮連接的當前字符集。
資料來源:PHP防止注入
沒有留言:
張貼留言