• 避免"表单重复提交"


    最近在看一个web项目,发现一个很容易被忽视的问题,那就是“表单重复提交”,在一般页面会产生重复数据,可能影响不大,可是要是发生在登录面页,就是一个重大的安全漏洞,因为当你注销了系统,在后台代码里也清空了Session,但如果第一用户没有关闭浏览器,这样又来了个第二用户,那么他就很容易在不需要知道第一用户的用户名、密码的情况下,以第一用户的身份登录;他只需要使用浏览器的“Back”,后退到第一用户的登录页面,然后刷新,并选择“重试提交”,这样他就进入了系统。
    其实这样的问题是很容易避免的,只是很多人没有注意到而已,在网上很Struts登录的例子中都存在这样的问题。
    要避免它也很容易,只要在页面初始化时,给它注入一个Token,并页面提交时验证Token是否被提交过这可以了。
    并且在Struts中好像还有现成的<Token>和Token验证可以使用,在ASP.NET中,使用一个Hidden的Input也很容易实现。
  • 相关阅读:
    js和c#小数四舍五入
    c#连接关闭了,事务并没有关闭
    SQLNET跟踪tnsping过程
    关闭listener监听日志
    DBMS_RANDOM 用法
    获取oracle当前系统设置了哪些事件
    oracle获取主机服务器IP
    动态性能视图v$session_longops
    PRINT_TABLE 列以行形式显示
    mac 开启ntfs 权限
  • 原文地址:https://www.cnblogs.com/zhongzf/p/1420255.html
Copyright © 2020-2023  润新知