如果电脑程序的if里同时用and和or连接条件,机器会怎么执行
#847962
假设A and B or C :
如果A为假,后跟上and,计算机不会看BC直接判false
如果A真,继续往后看:
如果B真,后接or,计算机不看C直接判true
如果B假,继续看C :
C真,返回true; C假,返回false
如果A为假,后跟上and,计算机不会看BC直接判false
如果A真,继续往后看:
如果B真,后接or,计算机不看C直接判true
如果B假,继续看C :
C真,返回true; C假,返回false
#847973
不管哪个语言都有优先级吧,就算你and or and or and or也会先算那个优先级高的,而不是按顺序算
#848161
and和or的优先级不同语言不一样,有的是平级也就是从左到右,有的是and更高即使写在最后面也是先算and
#848203
or连接的条件可以视为一个整体,即A and B or C and D可以视为A and (B or C) and D,这样实际条件只有and了,所以只要一个为false,就不成立了。
一般 ' or 1 = '1 mysql注入就是为了让原本验证username = xxx and password = xxx的验证变成 username =xxx and password = xxx or 1 = 1,这样实际的验证逻辑变成登录你输入的用户名,并且密码输入正确或者1=1,而1是肯定=1的,就能只用用户名登录了。
一般 ' or 1 = '1 mysql注入就是为了让原本验证username = xxx and password = xxx的验证变成 username =xxx and password = xxx or 1 = 1,这样实际的验证逻辑变成登录你输入的用户名,并且密码输入正确或者1=1,而1是肯定=1的,就能只用用户名登录了。
- 1