WEB攻击手段及防御第2篇-SQL注入
发布日期:2021-06-30 12:49:05 浏览次数:2 分类:技术文章

本文共 758 字,大约阅读时间需要 2 分钟。

概念

SQL注入即通过WEB表单域插入非法SQL命令,当服务器端构造SQL时采用拼接形式,非法SQL与正常SQL一并构造并在数据库中执行。

简单的SQL注入的例子:

例1:test123456 or 1=1;

加上or 1=1,如果没有防止SQL注入,这样攻击者就能成功登录。

例2:test123456';drop table xxx--

这样会删除一个表,--后面的就是注释

防御手段

1、禁止采用SQL拼接的形式

这也是最重要的一点,要采用参数化的形式。如mybatis参数占位符要使用##,它会给参数默认带上单引号,所有输入输入的字符当作一个参数来处理,而不是命令,不要使用$$,它不会带单引号有SQL注入的风险。

2、过滤或转义特殊字符

特殊字符包括如:单引号、杠等,或者使用正则表达式过滤如drop table、delete..、update..等危害数据库安全的请求,前后端都要采用措施。

3、数据库用户权利最小化

不要使用最大权限的管理员进行连接,为每个应用使用独立的所在库的账号进行连接,这样使权利最小化。

4、发生异常不要使用错误回显,

即显示默认的服务器500错误,把代码及表名信息直白显示在网页上,这样攻击者就能通过恶意操作使网页出现500错误从而看到数据库表名等内部信息。

5、加密存储敏感信息

用户敏感信息如身份证、手机号、邮箱、卡号等一定要加密存储,而且要妥善保密密钥。

关注公众号Java技术栈回复"面试"获取我整理的2020最全面试题及答案。

推荐去我的博客阅读更多:

1.

2.

3.

4.

觉得不错,别忘了点赞+转发哦!

最后,关注下面的栈长的微信公众号:Java技术栈,回复:福利,可以免费获取一份我整理的 2020 最新 Java 面试题,真的非常全(含答案),无任何套路。

转载地址:https://javastack.blog.csdn.net/article/details/107062955 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:面试官再问高并发,求你把这篇发给他!
下一篇:为什么 MySQL 使用 B+ 树,而不是 B 树或者 Hash?

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月15日 00时01分43秒