有人问我:
SQL注入中,\“--”是什么?还有为什么有时会出现\“-- -”?
我找不到这个问题的任何答案,而且语法让我很困惑。
我在网上查找,尝试 Youtube、SQL 文档和 chatgpt。
我认为 SqlInjection 时间已经过去了。因为像 WAF 这样的硬件可以阻止它们,而且现在 SQL 查询是使用 EFCore、Hibernate 等 orm 工具从后端生成的。
-- 是一个 ASP 网站。他们尝试忽略 where 条件并添加自己的条件。例如——AND 1=1 之类的。
在 PHP 中,这通过 -> mysql_real_escape_string() 函数停止。你可以从 PHP 的 web 官方网站上查看。
正如我提到的,现在 SQL 查询正在产生,但有要求(有时特别是对于报告或一些自定义的东西),那么你可以使用存储过程、函数,我的意思是 SQL 对象,你可以在那里控制你的变量,这样你就可以直接避免 SQL 注入
如果您的 SQL 是动态的并且需要在后端创建,那么您可以进行必要的控制,如正则表达式、数量限制、长度控制等,而不是连接 SQL 字符串,这样您就可以避免再次 SQL 注入。