基于SQL注入的反锯齿效果?
可能重复:
防御mysql注入和跨站点脚本的最佳方式
如何在mysql插入语句中包含一个PHP变量
我想知道是否有人在从密码字段获取文本时遇到了stripslashes语句,并且在这种情况下是否有任何方法执行SQL注入?
即在PHP语言中,您可以从网站的密码字段获取文本,并通过stripslashes语句将其删除(')so( ' OR 1=1 --
)变为( OR 1=1
)。 并且使得SQL注入很难做到。
stripslashes
从数据中删除斜杠( ),这是转义字符,不是引号(
'
)。 如果有的话,它的使用会增加存在SQL注入漏洞的可能性。
为了抵御SQL注入,请使用预准备语句和参数化查询。
stripslashes不应该用于密码。 因为它可能会剥离用户有意输入的斜杠。 根据您使用的rdbms防止sql注入转义。 这将确保你输入完全相同的字符串用户输入,但转义,所以SQL注入将不会发生。
对于mysql使用mysql_real_escape_string
另一个更好的选择是使用准备好的语句。 它可用于PHP的所有最新数据库驱动程序。 通用算法是