常见软件安全性漏洞主要有:XSS,CSRF,cookie和http头篡改,sql注入,非法输入攻击,身份验证漏洞,敏感数据泄露,日志不全,非法用户鉴别等。
1、XSS:互联网常见的攻击手段,常见的脚本注入攻击,如在留言中加入一段js脚本,导致整个页面被破坏。防御手段可以在接收请求的时候,把一些特征标记改掉即可。比如:<改成<,>改成>等。
由防止XSS攻击带来的问题是,页面需要实现自定义标签来替换一些特殊需要。比如在编辑框中要输入一张图片,并显示。这就需要自定义一些标签来描述图片。
2、CSRF:也是常见的攻击手段之一,如某人登录了含有非法脚本的网站,非法脚本中会发送一个指向某个网站的扣款请求,不巧的是,用户正好也打开了这个网站,因此,根据cookie等认证手段,服务端无法判断请求的合法性,从而导致一些非法操作产生。防御手段也比较简单,扣款页面带入一个一次性的随机token,提交请求的时候也带上这个token,服务端需要验证这个token的合法性。
3、cookie和http头篡改:许多网站都是采用cookie或http头来进行身份验证,但是一旦被篡改了会导致身份泄露。常用的处理方法就是给关键的信息加密,服务端验证加入一些token。
4、sql注入:java中现在用的一些中间件,如mybatis都有防止sql注入的功能。
5、非法输入攻击:非法输入包含很多类型,我在这里举一个例子。
某人上传了一张含有病毒的图片,那么所有访问这张图片的用户都将感染病毒,防止的手段可以在上传后,对图片进行一次压缩或转编码即可。
6、身份验证漏洞:包括访问未授权的功能,访问未授权的数据。访问未授权的功能主要是通过菜单权限进行限制。访问未授权的数据主要是限制用户不能访问别的用户数据或别的组织数据。
7、敏感数据泄露:主要是表现在一些关键数据泄露到前端或在网络上传输。比如用户的身份证。解决方法一般是在传输前进行隐藏,加密,替换等。
8、日志不全是线上问题调试的最大杀手。
9、非法用户鉴别:在互联网项目中,防止外挂是必不可少的。主要分为2步:鉴别和处理。鉴别非法用户可以采用一些特征描述,比如前端限制用户单位时间内只能访问某个接口几次,超过次数的访问就是非法用户造成的。处理一般采用限流,封号,限ip等手段。