sql注入把系统搞崩溃,该怎么解决(五)

开课吧开课吧锤锤2021-05-08 10:12

点赞
有用
分享分享

    Java编程语言是一种简单、面向对象、分布式、解释型、健壮安全、与系统无关、可移植、高性能、多线程和动态的语言。如今Java已经广泛应用于各个领域的编程开发。

Java

    8.如何防止sql注入?

    1.使用预编译机制

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

    2.要对特殊字符转义

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

    3.要捕获异常

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

    4.使用代码检测工具

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

    5.要有监控

    需要对数据库sql的执行情况进行监控,有异常情况,及时邮件或短信提醒。

    6.数据库账号需控制权限

    对生产环境的数据库建立单独的账号,只分配DML相关权限,且不能访问系统表。切勿在程序中直接使用管理员账号。

    7.代码review

    建立代码review机制,能找出部分隐藏的问题,提升代码质量。

    8.使用其他手段处理

    对于不能使用预编译传参时,要么开启druid的filter防火墙,要么自己写代码逻辑过滤掉所有可能的注入关键字。

    以上就是开课吧开课吧老师苏三说技术的“sql注入把系统搞崩溃,该怎么解决(五)”一文,更多Java教程相关内容尽在开课吧广场Java教程频道!

有用
分享