SQL注入自动增量

时间:2014-01-26 00:51:51

标签: mysql sql-injection

我最近一直在查找SQL注入,它们是什么,它们做了什么以及如何阻止它们。大多数地方都会讨论用户在选择的雄蕊中存储的用户名,导致问题,例如'OR 1,但如果我只使用自动递增的id来从数据库中选择信息而不是用户输入值,这也会阻止sql注入?

2 个答案:

答案 0 :(得分:1)

SQL Injection专门适用于查询的形状 - 它没有说明可能会意外泄露其他方式信息的查询。

  

SQL注入是一种代码注入技术,用于攻击数据驱动的应用程序,其中恶意SQL 语句[或表达式] 被插入到输入字段中以供执行。

使用占位符消除了SQL注入 1

但..

..仅仅因为系统没有SQL注入并不意味着它对其他漏洞是安全的

例如,想象一下这个查询,其中@OWNER表示一个占位符。

select *
from emails
where owner = @OWNER

此查询是免费来自SQL注入,但如果攻击者可以指定任意“OWNER”值,那么他们可以访问其他人的电子邮件 - 哎呀!这只是一个安全漏洞;不是SQL注入。


1 使用来自变量的所有数据的占位符。

是否来自用户无关紧要。如果值保证为整数(即​​使是自动增量列中的一个)也无关紧要。只需持续使用占位符 - 然后您就可以获得更清晰的查询,并有更多时间专注于其他问题。

答案 1 :(得分:0)

每个关注SQL注入的人都必须明白没有办法利用不存在的注入。另一方面,一旦注入可能,可能存在无限可能的漏洞

意味着人们永远不应该关心特定的漏洞。但始终专注于注射不可能。