破晓 发表于 2007 年 1 月 29 日 16:59:59

用REPLACE函数防注入(麻烦别灌水。)

bt想法,用REPLACE把所有牵涉注入的全部替换成其他字符
层层替换,可以免去关键词屏蔽跳转的弊端
可行吗?

破晓 发表于 2007 年 1 月 29 日 17:02:07

顺便问下,replace(strtobesearched,strsearchfor,strreplacewith [,start[,count[,compare]]])
start,count,compare干吗的?

热血NE 发表于 2007 年 1 月 29 日 18:24:57

完全可以的,半角变全角:o

蔚空 发表于 2007 年 1 月 29 日 18:43:58

我有個疑問,php的""和''是有分別的。
如果我這樣寫

$var1 = $_POST['input1'];
傳回的是POST形式提交的input1的字串,這個情況下,input1已經是字串(String),不被解析了,怎樣會有出現灌注情況?

再加上htmlspecialchars,addslashes,stripslashes,nl2br等函數做輸入輸出的處理,還有可能出現灌注??

還是我理解錯了...灌注的真正意義

我踏MJ而来 发表于 2007 年 1 月 29 日 18:54:41

是字符窜,如果没打开magic_quotes_gpc,那么字符窜就不会自动addslashes....如果select * from stat='$var1',那么只要字符窜是' or uid=1 and 'a'='a就成了注入...不过一般要么gpc自动addslashes,要么人工addslashes....很少注入...

蔚空 发表于 2007 年 1 月 29 日 18:58:44

對,我的意思是:
人手利用
addslashes,stripslashes,
這些函數作處理,難道還會出現注入問題???那麼神:)

我踏MJ而来 发表于 2007 年 1 月 29 日 19:03:04

应该不会吧..不过楼主研究的asp里没有addslashes...

长天 发表于 2007 年 1 月 29 日 19:17:47

还是会的吧,看看偶的留言本
都对文本进行了magic_quotes_gpc和addslashes
但还是出现过滤不严的说

我踏MJ而来 发表于 2007 年 1 月 29 日 19:19:06

..你那个不是注入,对那些URL之类的要php正则匹配或者htmlspecialchars转码

长天 发表于 2007 年 1 月 29 日 19:19:25

function html($str){
    $str = get_magic_quotes_gpc()?$str:addslashes($str);
        return $str;
}

function dehtml($str){
    $str = nl2br(stripslashes($str));
    return $str;
}
页: [1] 2 3
查看完整版本: 用REPLACE函数防注入(麻烦别灌水。)