htmlspecialchars函数与mysql_real_escape_string函数

#1 燃烧战车

使用htmlspecialchars函数还用得着mysql_real_escape_string函数防止注入吗

2010-10-29 15:38:53

#2 jake

两者作用不同:
htmlspecialchars是将HTML转换,避免XSS类攻击,但是用于防止SQL注入就不太足够了。
mysql_real_escape_string是防止注入攻击的。
http://php.net/manual/en/function.mysql-real-escape-string.php
http://php.net/manual/en/function.htmlspecialchars.php

2010-10-29 15:53:10

#3 燃烧战车

回复 2 jake


    过滤引号之类的特殊字符不就可以了吗? htmlspecialchars不就可以过滤单引号吗

2010-10-29 16:00:17

#4 jake

回复  jake


    过滤引号之类的特殊字符不就可以了吗? 不就可以过滤单引号吗 ...
燃烧战车 发表于 2010-10-29 16:00
如果从这个角度而言的话,str_replace或者是正则替换也是可以代替上面两个函数的。这里说的不是它们能够做什么,而是它们本来是用来做什么的。

2010-10-29 16:05:37

#5 燃烧战车

回复 4 jake


    谢谢杰克的解答,可是htmlspecialchars与mysql_real_escape_string一起用的话这是不是会重复?例如单引号的过滤,首先我对防注入的经验就是转义引号,还有什么技巧可以注入吗?

2010-10-29 16:12:51

#6 jake

不重复,可以直接试试就行。

2010-10-29 16:21:27

#7 燃烧战车

回复 6 jake


    我明白了,谢谢你耐心的解答!{:2_31:}

2010-10-29 16:24:08