WEB应用常见的安全漏洞及解决方案

/ 0条评论 / 0 个点赞 / 809人阅读

SQL注入

例:在数据库访问层中使用“+”来拼接SQL语句!如:

解决方案:

自己写jdbc连接:

如果项目中使用了Hibernate框架,则推荐使用named parameter。如:

项目中具体体现

XSS

保存数据时未检测包含js或html代码,照成数据被读取并加载到页面时,会触发执行js或html代码。


样例:

通过文本框填入<img onerror="alert(1)" src="">

然后再列表展示的时候就会弹出窗口提示1

解决:

通过过滤器,对请求参数中的Value内容进行遍历,将<和>转义为&lt;和&gt;。

输入过滤,输出转义。

信息泄漏

请求列表信息和请求单个明细信息,如果包含密码字段,记得返回前添加处理:不返回密码或者密码字段脱密,用***代替。

登录限制绕过,验证码不会失效

1、登录的时候,请求重发,验证码不会失效

2、密码错误,会有登录次数限制

全局越权

需要对path,API等都做权限效验,对于无权限效验的API要格外谨慎,特别是文件上传之类的

攻击者可以直接读取服务器文件,可导致严重敏感信息泄漏。

修复建议:

对url、atn等参数值进行合规检查,不可完全信任前端提交的参数值。过滤敏感路径,且对路径进行拦截。

解决办法

 在拦截器中判断是否是从系统内发起请求,如果不是则跳转400页面

任意文件读取

修复建议:

对url、atn等参数值进行合规检查,不可完全信任前端提交的参数值。过滤敏感路径,且对路径进行拦截。

敏感信息泄漏

通过报错信息可以获取到网站物理路径、数据库结构等敏感信息。

修复建议:

后端屏蔽报错信息。或者对错误信息进行转化。

解决办法