什么是SQL注入?
SQL注入是一种非常常见的数据库攻击手段,SQL注入漏洞也是网络世界中
最普遍的漏洞之一。
例如:某学长通过攻击学校数据库修改自己成绩,一般用的就是SQL注入方法。
原因总结:
对sql语句和关键字未进行过滤
当前端传过来的数据进入到后端进行处理时,没做严格的判断,导致其传入的‘数据(含有sql关键字)’ 在拼接sql语句中
由于其特殊性,被当作sql语句的一部分被执行,导致数据库受损(修改,删除等)
防止方法:
-
过滤掉关键字:select、insert、update、delete、and等; -
执行 sql语句时
使用系统函数addslashes进行 sql语句转换 -
提高数据库命名技巧,对于一些重要
字段根据程序特点命名,取不易猜到的(lcuuid as uuid) -
对于常用的方法加以封装,避免直接暴露sql语句,
例如 orm -
开启安全模式,safe_mode=on
-
打开magic_quotes_gpc=off,默认是关闭的,它打开后自动把用户提交的sql语句进行转换(加上\转义),
这对防止sql注入有很大作用;on -
Sql语句书写尽量不要省略双引号和单引号
-
关键日志错误信息不要暴漏到页面,转到系统中去
SQL注入是一种常见的数据库安全漏洞,攻击者通过构造恶意SQL语句来篡改或获取敏感信息。博客内容介绍了SQL注入的原理,如不正确处理前端数据导致的数据库执行异常SQL语句,并列举了多种防范措施,包括关键字过滤、使用预编译语句、安全的数据库命名、ORM框架、启用安全模式以及避免暴露关键日志等。这些措施能有效提高系统的安全性,防止数据被非法篡改。

被折叠的 条评论
为什么被折叠?



