呵呵,我正想知道,愿闻其详
1.str=replace(str,"'","‘")
2.str=replace(str,chr(39),"’")
3.str=replace(str,",",",")
上面我标的红色的:3个做法很有可能是错误的。因为引起SQL中的语句不总是单引号,再扩大一点,引起问题的不是任何单独的符号,这样子的过滤,有些冤枉单引号了。正确的利用注入,重要的一点是hxfly你必须闭合SQL语句,往往是得先正确地闭合前面一个条件,因为我们可能会在同一句里面引入新的条件,补救措施只要破坏注入条件应该就可以了,但是考虑到其复杂性,最好还是较为完整的限制一下输入的字符种类。
几个看起来是没有什么问题的,但潜在的会带来一些隐患。这很容易给人造成的一个错觉是,我对输入的字符串已经很有效的做过处理了,以后使用没有什么问题。这句话没有错,对字符串来说这样做也是很正确的,但是他扮演了一个不光彩的角色,试想一下,如果过滤后的字符串放进了数据库,而后续的语句有直接拿出来使用的,这种对前面过滤的依赖性,是不是正确的呢?我想,黑客大哥就是从这里进入的.
还有还要考虑数据的类型问题!!
hxfly:我解释得清楚吗?不知道你是否能够理解我说的呢?