博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WEB攻击手段及防御第2篇-SQL注入
阅读量:2001 次
发布时间:2019-04-28

本文共 604 字,大约阅读时间需要 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、加密存储敏感信息


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

你可能感兴趣的文章
【语言-c#】C# 注释详细介绍说明
查看>>
MySQL 内存模型
查看>>
Ubuntu下gyp简单入门实例
查看>>
express 解析post方式下的json参数
查看>>
node.js AES/ECB/PKCS5Padding 与其他语言的加密解密通用
查看>>
node.js 实现一个简单的登录拦截器
查看>>
c++抽象类、纯虚函数以及巧用纯虚析构函数实现接口类【转】
查看>>
WebRTC学习记录(1):采集microphone到文件原理实践&讲解【转】
查看>>
Caffe 安装错误记录及解决办法【转】
查看>>
Android用类继承Application的全局变量使用注意
查看>>
qml之TextField使用笔记
查看>>
排序算法之冒泡排序
查看>>
排序算法之选择排序
查看>>
排序算法之希尔排序
查看>>
pyqt5之拖拽
查看>>
pyqt5之俄罗斯方块
查看>>
算法排序之归并排序
查看>>
算法排序之快速排序
查看>>
算法排序之堆排序
查看>>
算法排序之计数排序
查看>>