我们记录了有人试图添加/**/or/**/
到查询字符串的获取请求。
这是什么意思,它会在哪里造成损害,我应该在我的代码中注意什么?
编辑
具体来说/**/or/**/1=@@version)--
——目标是什么?
我们记录了有人试图添加/**/or/**/
到查询字符串的获取请求。
这是什么意思,它会在哪里造成损害,我应该在我的代码中注意什么?
编辑
具体来说/**/or/**/1=@@version)--
——目标是什么?
几乎可以肯定,这是一次SQL 注入攻击或类似的尝试。就 SQL 而言,最容易思考(和阅读)这种漏洞,即使在您的情况下它是一个稍微不同的攻击向量。
这个想法是,如果你有这种 SQL:
"SELECT User from USERS where UserName =" + user + " AND PASSWORD = " + password
然后将像您直接看到的值插入 SQL 中可能会导致查询的含义与您预期的完全不同(通常更宽松)。通常 SQL 注入攻击包含单引号,以终止 SQL 中的文本值。你确定你看到的攻击没有单引号吗?
如果您在整个应用程序中使用参数化 SQL(并且在数据库中没有动态 SQL),并且从不尝试将传入的用户指定值用作任何类型的“代码”,那么您应该没问题。
我怀疑在您的情况下,攻击者可能不会使用 SQL 来渗透您的安全性;它很可能是Javascript。但是这个想法是一样的:如果您以某种形式将任何用户输入用作“代码”,例如,通过构建一个与预定义代码混合的字符串,然后执行该代码,您就会使自己容易受到攻击。始终将代码视为代码(在您的控制之下),将数据视为数据。