我正在查看这个问题(Is this a CakePHP hacking of some kind?),当我查看代码时,我看到了这一行:
$wp_cw_kses_split = '>=^/E]u*PDAF$!V'^']O;N18*L%*"2MN8';
当我回应这个时,它回声create_function
。
这是如何工作的?我的意思是,即使是一个字符串怎么样?其中有未转义的'
。
答案 0 :(得分:3)
这是对字符串的按位XOR运算,这意味着字符的ascii值是异或的。 Manual Example 2
您有两个不同的字符串:
>=^/E]u*PDAF$!V
和]O;N18*L%*"2MN8
答案 1 :(得分:3)
它正在对两个字符串'>=^/E]u*PDAF$!V'
和']O;N18*L%*"2MN8'
执行按位XOR运算。
var_dump('>' ^ ']'); // string(1) "c"
var_dump('=' ^ 'O'); // string(1) "r"
var_dump('^' ^ ';'); // string(1) "e"
// ... etc
按位XOR操作是在字符的ASCII码上完成的,所以对于第一个,
">" = 62 (ASCII) = 0111110
^ = XOR -------
"]" = 93 (ASCII) = 1011101
==========================
"c" = 99 (ASCII) = 1100011
答案 2 :(得分:2)
这是一个表达式,两个字符串的操作:
1: '>=^/E]u*PDAF$!V'
operator: ^ - bitwise XOR
2: ']O;N18*L%*"2MN8'
正如您所看到的,'
并非“未转义”,但这是故意的。它看起来有点神秘,所以大脑不会把它看作三件事而只是一件事(线条末端的视觉模式太吸引人了)。