用REPLACE函数防注入(麻烦别灌水。)
bt想法,用REPLACE把所有牵涉注入的全部替换成其他字符层层替换,可以免去关键词屏蔽跳转的弊端
可行吗? 顺便问下,replace(strtobesearched,strsearchfor,strreplacewith [,start[,count[,compare]]])
start,count,compare干吗的? 完全可以的,半角变全角:o 我有個疑問,php的""和''是有分別的。
如果我這樣寫
$var1 = $_POST['input1'];
傳回的是POST形式提交的input1的字串,這個情況下,input1已經是字串(String),不被解析了,怎樣會有出現灌注情況?
再加上htmlspecialchars,addslashes,stripslashes,nl2br等函數做輸入輸出的處理,還有可能出現灌注??
還是我理解錯了...灌注的真正意義 是字符窜,如果没打开magic_quotes_gpc,那么字符窜就不会自动addslashes....如果select * from stat='$var1',那么只要字符窜是' or uid=1 and 'a'='a就成了注入...不过一般要么gpc自动addslashes,要么人工addslashes....很少注入... 對,我的意思是:
人手利用
addslashes,stripslashes,
這些函數作處理,難道還會出現注入問題???那麼神:) 应该不会吧..不过楼主研究的asp里没有addslashes... 还是会的吧,看看偶的留言本
都对文本进行了magic_quotes_gpc和addslashes
但还是出现过滤不严的说 ..你那个不是注入,对那些URL之类的要php正则匹配或者htmlspecialchars转码 function html($str){
$str = get_magic_quotes_gpc()?$str:addslashes($str);
return $str;
}
function dehtml($str){
$str = nl2br(stripslashes($str));
return $str;
}