基于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的所有最新数据库驱动程序。 通用算法是

  • 准备一份声明。 通常通过准备功能
  • 绑定值。 通常通过绑定功能。
  • 执行该声明。 通常是exec函数。
  • 链接地址: http://www.djcxy.com/p/93689.html

    上一篇: Effectiveness of stripslashes against SQL Injection?

    下一篇: prevent against SQL injection