防SQL注入的一些方法

所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,这类表单特别容易受到SQL注入式攻击。SQL注入一直是WEB程序安全性的指标之一,也是必备防范的一种安全应用。那么,如何防止SQL注入呢?

限制类型

打个比方,比如有一个列表,用户可以输入一个数字跳到该页,像这种需求可以直接把输入框用JavaScript限制用户只能输入数字,其它字符不允许。PHP接收到参数的时候,直接判断是不是数字即可。

永远不要相信表单数据

表单的出现,是Web程序的一个里程碑,但也成为许多SQL注入的漏洞之一。永远记得:只要是用户输入的,就一定要进行相应的验证。

过滤特殊字符

比如说单引号,双引号,空格等其它一些特殊字符。为什么要过滤,你懂的。

可以写一个过滤函数

许多同学在过滤特殊字符的时候,都是用系统函数操作。这当然也可以,但不要指望系统函数能绝对保证,个人感觉自己写一个专门的过滤函数,就如同过滤关键字一样。多多学习正则表达式,把你想到的,目前最流行的注入式攻击关键字符都K掉

URL地址栏

这个也是继表单SQL注入之后最常见的SQL注入方式之一,注入方式跟表单式注入一样。

使用预处理

对于直接把用户输入的内容直接拼SQL语句是最危险的行为,我刚开始也尝到了苦头,贪图方便。使用预处理非常有效的防止SQL注入,而且在有些时候还能提高效率。.

前台后台都验证

一定要用JavaScript去验证前端输入的内容是否合法,然后再提交到后台程序,后台程序再验证,双管齐下。另外,使用JavaScript验证不仅提高效率,用户体验也非常棒!

少用输入框

只要是用户能输入的表单,那就都有一定的危险,尽量少使用输入框。如日期格式的数据可以使用年月日三个下拉菜单只供用户选择,页数可以使用数字下拉菜单,二选一的单选框等等。

对数据库及时补丁

有些环境一经装好后,几乎都不去看看是否有最新补丁发布,修补修补。一定要养成常去官网看看,有没有最新补丁发布,及时补上。

备份

这点应该说是日常工作了,花不了多少时间,Linux用户直接写一个定期执行脚本就搞定。就算是SQL注入导致数据库信息丢失,错乱了也能补救!

分享

TITLE: 防SQL注入的一些方法

LINK: https://www.qttc.net/98-prevent-sql-injection.html

NOTE: 原创内容,转载请注明出自琼台博客