我了解没有保护措施时(将“加倍”到“”),我们可以简单地使用

'or'1=1--


但是当服务器将'翻倍'时,我该怎么做呢?从我的研究看来,我们使用了\,但是我仍然对如何使用感到困惑。

我试过了:

\'or\'1=1--


但是我收到语法错误。我有什么误会?谢谢

最佳答案

如果要避免SQL注入,则最佳实践是避免直接向数据库插入查询的函数(例如mysqli_query()。相反,存储过程和准备好的语句可以提供一层防止SQL注入的保护。请参见,在MySQLTutorial中为prepared statements

但是,您可以通过在所有插入的数据上仅使用PHP函数mysqli_real_escape_string()htmlspecialchars()来插入撇号('和“)来解决您的问题。此方法绝对不安全,但允许使用这些字符插入数据并且-谁知道-阻止一个补救性很强的黑客。

关于mysql - 服务器双撇号时的SQL注入(inject),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46616551/

10-13 00:53