大白兔的开发专栏

大白兔的开发专栏

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

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

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

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zclcqlove/article/details/79962270
文章标签: java web 安全
个人分类: 设计与重构
想对作者说点什么? 我来说一句

JavaWeb应用的安全性分析及对策

2009年07月31日 405KB 下载

没有更多推荐了,返回首页

不良信息举报

java web项目安全设计

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭