为了防止我的网站使用SQL注入,我使用了预准备语句。
现在让我说我在我的代码中使用某个地方,这是一个简单的SQL查询:
SELECT DATA FROM DATABLE;
此代码是否容易注射?好吧,在我看来,这是不可能的,因为没有用户输入。但我只是想确定。
答案 0 :(得分:5)
如果你的陈述是固定的(没有外部参数),那么它就不会受到注射。
因此,如果您的代码看起来像这样:
result = RunQuery("SELECT * FROM Table")
然后您就安全了,因为查询始终每次都 ,并且不会受到用户的影响。
答案 1 :(得分:0)
只有在查询中使用变量时才能进行注入。
如果您使用params的预备语句,则无法使用。
select * from user where id = ?
您无法更改此查询,只能更改该值,在这种情况下,您将无法获得任何结果
如果您使用
select * from user where id = '$id'
现在取决于$ id的值,我们可以有一个sql注入。 如果$ id为“0”或id> 0“,您将全部登录;)