sql和数据库的安全

1.防止sql注入,对特殊字符进行转译与过滤,使用sql语句绑定变量
    执行查询的时候 sql会变成,String sql = "select * from tb_name where name= '' and passwd = '' or '1' = '1',
    1=1是永远成立的,所以,前面的条件已经不起作用,我们使用预编译语句执行者就可以避免这个问题,
    prepareStatement将sql预编译,传参数的时候,不会改变sql语句结构,就可以避免注入。
2.最小用户权限设置,最好不要使用root用户连接数据库

3.当sql运行出错的时候,不要将错误信息全部显示给用户

数据安全 
1.使用代理保护数据库免受攻击
    数据库代理(或网关代理)位于应用程序和数据库之间,接受来自应用程序的连接请求,然后代表这些应用程序连接到数据库。
    智能数据库代理(如我们自己使用的MaxScale)提供了过滤器和加载模块,以提供安全性、可靠性、可伸缩性和性能优势。
    MaxScale数据库防火墙过滤器通过过滤器解析发起的查询,如果发送过来的查询不符合已经提前设置的查询类型的白名单,那么过滤器就会自动阻止。
    例如,给定的连接只能执行更新和插入,而另一个连接必须匹配某些正则表达式,等等。
    像MaxScale这样的代理也可以保护数据库不受DDoS的攻击:当过多的连接直接进入到数据库服务器时,它就会超载。但是代理会吸收一些负载来限制这种攻击的影响。
2.建立审计和健壮的日志记录
3.实行严格的用户帐户管理
4.保证数据库软件和操作系统是最新的
5.加密敏感数据,无论是在应用程序中,还是在数据传输中,甚至处于空闲时

猜你喜欢

转载自blog.csdn.net/weixin_42081778/article/details/87879052