在SQL注入攻击中,X AND((1 = 1)OR(1 = 0))的值是什么?
能否请您逐步解释一下? (1 = 1)等于1,是(1 = 0)等于0?
答案 0 :(得分:2)
是,(1 = 1)与1或True
相同,(1 = 0)与0或False
相同
如果您感到困惑并且正在运行MySQL,则也可以运行类似这样的内容来轻松获得答案:
SELECT 1=1, 1=0, (1=1 OR 1=0)
因此,逐步操作将是:
(1=1) OR (1=0)
等于True OR False
。True or False
等于True
X AND True
的值将等于X
答案 1 :(得分:0)
1=1
和1=0
是比较运算符。 1=1
的评估将始终为真,因此无论如何,语句X的所有内容都将返回。 SQL注入的想法是,用户可以将参数传递到表单输入中,在该值中,SQL调用中使用的值不能正确检查以确保输入不会引起问题。如果用户输入输入(假设搜索查询)的值为OR 1=1--
(其中--
注释了查询的其余部分),则在服务器端使用的语句将返回数据由于输入是有效的SQL命令,用户不应看到。这就是使用比较的原因。