• 避免"表单重复提交"


    最近在看一个web项目,发现一个很容易被忽视的问题,那就是“表单重复提交”,在一般页面会产生重复数据,可能影响不大,可是要是发生在登录面页,就是一个重大的安全漏洞,因为当你注销了系统,在后台代码里也清空了Session,但如果第一用户没有关闭浏览器,这样又来了个第二用户,那么他就很容易在不需要知道第一用户的用户名、密码的情况下,以第一用户的身份登录;他只需要使用浏览器的“Back”,后退到第一用户的登录页面,然后刷新,并选择“重试提交”,这样他就进入了系统。
    其实这样的问题是很容易避免的,只是很多人没有注意到而已,在网上很Struts登录的例子中都存在这样的问题。
    要避免它也很容易,只要在页面初始化时,给它注入一个Token,并页面提交时验证Token是否被提交过这可以了。
    并且在Struts中好像还有现成的<Token>和Token验证可以使用,在ASP.NET中,使用一个Hidden的Input也很容易实现。
  • 相关阅读:
    纸上谈兵:最短路径与贪婪算法
    “不给力啊,老湿!”:RSA加密与破解
    纸上谈兵:拓扑排序
    Homebrew 安装使用
    Servlet详解
    搭建SpringMVC
    设置IDEA智能感知支持Jsp内置对象
    素材网站
    常用单词
    常见异常
  • 原文地址:https://www.cnblogs.com/zhongzf/p/1420255.html
Copyright © 2020-2023  润新知