異或是一種邏輯運算,運算法則簡言之就是:兩個條件相同(同真或同假)即爲假(0),兩個條件不同即爲真(1),null與任何條件做異或運算都爲null,如果從數學的角度理解就是,空集與任何集合的交集都爲空。
mysql裏異或運算符爲^ 或者 xor
兩個同爲真的條件做異或,結果爲假
兩個同爲假的條件做異或,結果爲假
一個條件爲真,一個條件爲假,結果爲真
null與任何條件(真、假、null)做異或,結果都爲null
說這麼多有什麼用呢?遇到一個異或的sql注入,就是用這種方法去判斷的。
以下是攜程某分站的一個例子,作爲研究技術的參考:
條件爲假的時
條件爲真時