我想知道是否有人在从密码字段获取文本时遇到了stripslashes语句,在这种情况下是否有任何方法可以进行 SQL 注入?
即在PHP 语言中,您可以从网站的密码字段中获取文本,并通过stripslashes 语句将其传递以删除任何('),因此( ' OR 1=1 --
) 变为( OR 1=1
)。并且使 SQL 注入难以进行。
我想知道是否有人在从密码字段获取文本时遇到了stripslashes语句,在这种情况下是否有任何方法可以进行 SQL 注入?
即在PHP 语言中,您可以从网站的密码字段中获取文本,并通过stripslashes 语句将其传递以删除任何('),因此( ' OR 1=1 --
) 变为( OR 1=1
)。并且使 SQL 注入难以进行。
stripslashes
从数据中删除斜杠 ( \
),它们是转义字符,而不是引号 ( '
)。如果有的话,它的用途将增加存在 SQL 注入漏洞的可能性。
要防御 SQL 注入,请使用准备好的语句和参数化查询。
stripslashes 不应用于密码。因为它可能会删除用户有意输入的斜杠。根据您使用的 rdbms 防止 sql 注入逃逸。这将确保您输入的字符串与用户输入但已转义的字符串完全相同,因此不会发生 sql 注入。
对于 mysql 使用mysql_real_escape_string
另一个更好的选择是使用准备好的语句。它在所有最新的 PHP 数据库驱动程序中都可用。通用算法是