如何防止 sql 注入?

举报
满心 发表于 2021/02/25 10:37:12 2021/02/25
【摘要】 1 使用预编译机制尽量用预编译机制,少用字符串拼接的方式传参,它是sql注入问题的根源。2 要对特殊字符转义有些特殊字符,比如:%作为like语句中的参数时,要对其进行转义处理。3 要捕获异常需要对所有的异常情况进行捕获,切记接口直接返回异常信息,因为有些异常信息中包含了 sql 信息,包括:库名,表名,字段名等。攻击者拿着这些信息,就能通过 sql 注入随心所欲的攻击你的数据库了。目前比较...

1 使用预编译机制

尽量用预编译机制,少用字符串拼接的方式传参,它是sql注入问题的根源。

2 要对特殊字符转义

有些特殊字符,比如:%作为like语句中的参数时,要对其进行转义处理。

3 要捕获异常

需要对所有的异常情况进行捕获,切记接口直接返回异常信息,因为有些异常信息中包含了 sql 信息,包括:库名,表名,字段名等。攻击者拿着这些信息,就能通过 sql 注入随心所欲的攻击你的数据库了。目前比较主流的做法是,有个专门的网关服务,它统一暴露对外接口。用户请求接口时先经过它,再由它将请求转发给业务服务。这样做的好处是:能统一封装返回数据的返回体,并且如果出现异常,能返回统一的异常信息,隐藏敏感信息。此外还能做限流和权限控制。

4 使用代码检测工具

使用sqlMap等代码检测工具,它能检测sql注入漏洞。

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。