1:SQL注入

1:使用#{}而不是${}:

因为#{}是一个参数占位符,对于字符串类型,会自动加上"",其他类型不加。由于Mybatis采用预编译,其后的参数不会再进行SQL编译,所以一定程度上防止SQL注入。

${}是一个简单的字符串替换,字符串是什么,就会解析成什么,存在SQL注入风险

2:不要暴露一些不必要的日志,如果SQL发生异常,不要暴露给客户,可以自定义异常进行相应。

3:不相信任何外部输入参数,过滤参数中含有的一些数据库关键词。

4:适当性权限控制

2:JSON反序列化漏洞

比如fastjson1,2,24的一个漏洞,

如何解决json反序列化漏洞问题

  • 可以升级版本,比如fastjson后面版本,增强AutoType打开时的安全性 fastjson,增加了AutoType黑名单等等,都是为了应对这些安全漏洞。
  • 反序列化有fastjson、gson、jackson等等类型,可以替换其他类型。
  • 升级+打开safemode

3:XSS攻击

XSS 攻击全称跨站脚本攻击(Cross-Site Scripting),这会与层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,因此有人将跨站脚本攻击缩写为XSS。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。XSS攻击一般分三种类型:存储型 、反射型 、DOM型XSS

如何攻击?

图片

如何解决XSS攻击:

  • 不相信用户的输入,对输入进行过滤,过滤标签等,只允许合法值。
  • HTML 转义
  • 对于链接跳转,如<a href="xxx" 等,要校验内容,禁止以script开头的非法链接。
  • 限制输入长度等等

4:CSRF攻击

CSRF,跨站请求伪造,攻击者盗用了你的身份,以你的名义发送恶意请求。

图片

如何解决CSRF攻击

  • 检查Referer字段。HTTP头中有一个Referer字段,这个字段用以标明请求来源于哪个地址。
  • 添加校验token。

5:文件上传下载漏洞

文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。常见场景是web服务器允许用户上传图片或者普通文本文件保存,而用户绕过上传机制上传恶意代码并执行从而控制服务器。

解决办法一般就是:

  • 限制服务器相关文件目录的权限
  • 校验上传的文件,如后缀名 禁止上传恶意代码的文件
  • 尽量禁止使用前端上传的文件名

文件下载漏洞

文件下载漏洞,举个例子,使用 .. 等字符,使应用读取到指定目录之外的其他目录中的文件内容,从而可能读取到服务器的其他相关重要信息。

6:敏感数据泄露

7:DDOS攻击

一般来说是指攻击者对目标网站在较短的时间内发起大量请求,大规模消耗目标网站的主机资源,让它无法正常服务。

解决:

  • 高防服务器,即能独立硬防御 50Gbps 以上的服务器,能够帮助网站拒绝服务攻击,定期扫描网络主节点等
  • 黑名单
  • DDoS 清洗
  • CDN 加速

8:框架的漏洞

results matching ""

    No results matching ""