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