在沒有防隱碼攻擊的一些網站可介由任何一個input輸入
' or '1' = '1
以達到入侵的需求,最慘的是還可以下一些SQL DELETE FROM的語法
在這裡介紹2個php防隱碼的方法
1.建立一個funtion 利用preg_match去檢查字串
function contains_newlines($str_to_test) {
if(preg_match("/(%0A|%0D|\\n+|\\r+)/i", $str_to_test) != 0) {
echo "你輸入的字串可能含有 injection 漏洞攻擊,請重新檢查!!";
exit;
}
}
2.利用mysql_escape_string 去將含有"'"的字串,自動加一個"\"
$str = "doremi's home";
$escaped_str = mysql_escape_string($str);
printf ("%s\n", $escaped_str);
輸出:
doremi\'s home
以上方法在為了檢查字串的安全性,再塞給sql去動作
沒有留言:
張貼留言