《深入浅出Mysql》——第十五章 SQL中的安全问题 + 第十六章 SQL Mode 及相关问题
它的产生主要是由于程序对用户输入的数据没有进行严格的 过滤,导致非法数据库查询语句的执行。
而且,SQL Injection 也很难防范。网站管理员无法通过安装系统补丁或者进行简 单的安全配置进行自我保护,一般的防火墙也无法拦截 SQL Injection 攻击
结果发现,这次记录没有插入成功,给出了一个 ERROR,而不仅仅是 warning。
下面介绍一下 SQL Mode 的常见功能。 (1)效验日期数据合法性,这是 SQL Mode 的一项常见功能。
很显然,在 ANSI 模式下,非法日期可以插入,但是插入值却变为“0000-00-00 00:00:00”, 并且系统给出了 warning;而在 TRADITIONAL 模式下,在直接提示日期非法,拒绝插入。
通过上面的实例可以看到,当在 ANSI 模式中增加了 NO_BACKSLASH_ESCAPES 模式后,反斜 线变为了普通字符。如果导入的数据存在反斜线,可以设置此模式,保证导入数据的正确性。