异或是一种逻辑运算,运算法则简言之就是:两个条件相同(同真或同假)即为假(0),两个条件不同即为真(1),null与任何条件做异或运算都为null,如果从数学的角度理解就是,空集与任何集合的交集都为空。 mysql里异或运算符为^ 或者 xor 两个同为真的条件
异或是一种逻辑运算,运算法则简言之就是:两个条件相同(同真或同假)即为假(0),两个条件不同即为真(1),null与任何条件做异或运算都为null,如果从数学的角度理解就是,空集与任何集合的交集都为空。
mysql里异或运算符为^ 或者 xor
两个同为真的条件做异或,结果为假
650) this.width=650;” src=”https://img.gaodaima.com/d/file/2019/04/15/0712d560c0a1220a613f47c83fe29041.jpg” title=”xor1.jpg” alt=”wKiom1V6bq_iUkcwAABEQlyQkaU645.jpg” />
两个同为假的条件做异或,结果为假
650) this.width=650;” src=”https://img.gaodaima.com/d/file/2019/04/15/8a597bca5a5d79d7dbb9fb1e63b本文来源gaodai$ma#com搞$代*码*网(f832a.jpg” title=”xor3.jpg” alt=”wKiom1V6by7B3J18AAA-9bDKeD4079.jpg” />
一个条件为真,一个条件为假,结果为真
650) this.width=650;” src=”https://img.gaodaima.com/d/file/2019/04/15/9e84e0560249935dec15697184bab232.jpg” title=”xor2.jpg” alt=”wKioL1V6cRDwT65LAABGRaNw770989.jpg” />
null与任何条件(真、假、null)做异或,结果都为null
650) this.width=650;” src=”https://img.gaodaima.com/d/file/2019/04/15/ecad0ceb0f182df9eb634ea2e119223c.jpg” title=”xor4.jpg” alt=”wKioL1V6cVLCp0AtAADUa31dzbA518.jpg” />
说这么多有什么用呢?遇到一个异或的sql注入,就是用这种方法去判断的。
以下是携程某分站的一个例子,作为研究技术的参考:
条件为假的时
650) this.width=650;” src=”https://img.gaodaima.com/d/file/2019/04/15/5c0c503b0e3652cf170a63b2352a3d23.jpg” title=”xc.jpg” alt=”wKiom1WI8a6xnNNoAAS8PgWuvEQ784.jpg” />
条件为真时
650) this.width=650;” src=”https://img.gaodaima.com/d/file/2019/04/15/2bf0c71ea8835ebbf520f01a71e013e5.jpg” title=”xiecheng.jpg” alt=”wKioL1WI85zhbWOxAALnY7yLkV8460.jpg” />