java web项目安全设计

准备知识
BurpSuite工具–安全测试使用

安全设计要点

1、 使用https协议访问
2、 登录页面密码输入框关联密码控件&键盘–敏感信息加密传输至后台,防止中途被截取
3、登录页面增加一次性图形验证码–仅能验证一次,验证后从session立即删除该key
4、禁止同一账户多处登录–以shiro框架做权限管理为例,实现方式参考我的另一篇文章《shiro框架实现单点登录》
5、sessionId不能固定–shiro框架有sessionId固定问题,有安全隐患,解决方法如下

         // 丢弃老的session,重新登录生成sessionID,解决session fixed问题
            session.stop();
            user.login(token);

6、短信防止频繁发送(短信防重放)
恶意用户获取短信接口,可通过重放数据包,实现短信无限制发送,可能造成严重后果。
解决方法:将手机号放进缓存中,设置有效期一分钟(具体有效期以业务需求为准)
7、权限设计到按钮级别
避免不要过粗,尽量将权限细化到按钮级别,便于控制不同角色的权限
8、业务上注意防止越权操作
校验需要操作的数据所有权是否跟当前登录用户的一致
9、上传文件避免存储型XSS
例如上传excel文件,恶意用户在excel的几个字段中添加js代码:,可能造成严重后果。
解决方法:使用正则表达式等方法严格校验用户输入的内容是否符合参数格式&内容要求.
10、防止CSRF
例如修改密码功能:恶意用户可以构造相应的html页面,供用户访问,用户一旦访问到该URL,便会使用自己浏览器中的cookie向服务器发送修改密码的请求。
例如:
某用户登陆帐号后,访问我们构造的网站
这里写图片描述

网页源代码如下:
这里写图片描述

点击submit request后,即可成功修改了自己的密码:
这里写图片描述

11、文件上传时,尽量做病毒扫描

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值