sql注入中的宽字节国内最常使用的gbk编码,这种方式主要是绕过addslashes等对特殊字符进行转移的绕过。反斜杠()的十六进制为%5c,在你输入%bf%27时,函数遇到单引号自动转移加入\,此时变为%bf%5c%27,%bf%5c在gbk中变为一个宽字符“縗”。%bf那个位置可以是%81-%fe中间的任何字符。不止在sql注入中,宽字符注入在很多地方都可以应用。
继续阅读全文
Binlog是server层记录数据改变的日志,存储引擎层是最终记录数据变化的地方,为了保证复制架构中,主从数据保持一致,就需要做到主库上binlog中的更新也一定在存储引擎层被记录(redo log),同时还需要保证存储引擎层上的提交顺序与binlog中记录更新的顺序保持一致,所以就需要这么一种提交机制two-phrase commit protocol(2PC)。
在2PC中,通过binlog中是否存在更新的事务来判断,存储引擎层的更新是全部提交还是全部回滚;通过prepare_commit_mutex使得事务顺序化提交,保证存储引擎端的commit顺序与binlog的写入顺序一致。
继续阅读全文