CheckMarx Cross Site History Manipulation 解决方案

checkmarx对Cross Site History Manipulation描述如下:

风险会造成的后果

攻击者可以通过操纵浏览器的 JavaScript History对象破坏浏览器的同源策略并侵犯用户的隐私。在某些情况下,这使攻击者可以检测用户是否已登录、跟踪用户的活动或推断其他条件值的 状态。这也可能泄露初始攻击的结果,从而增强跨站点请求伪造
(XSRF) 攻击。

起因 如何发生

现代浏览器会将用户的浏览历史记录作为先前访问过的 URL 的堆栈公开给本地
JavaScript。虽然浏览器强制执行严格的同源策略 (SOP)
以防止一个网站的页面读取在其他网站上访问的 URL,但 History
对象确实会泄漏历史堆栈的大小。在某些情况下,仅使用这些信息,攻击者即可以发现应用程序在服务器端执行的某些检查的结果。例如,如果应用程序将未经身份验证的用户重定向到登录页面,则另一个网站上的脚本可以通过检查 History 对象的长度来检测 用户是否已登录。
当应用程序根据某些条件的值、用户的服务器端会话的状态重定向用户的浏览器时,就会造成信息泄漏。例如,用户是否已经过应用程序的身份验证、用户是否访问了有特定参数的特定页面,或某些应用程序数据的值。

解决方案

将一个随机值作为参数添加到所有目标 URL。
下面示例为Cross Site History Manipulation漏洞

If (!isAuthenticated)
	response.sendRedirect("Login.jsp");

下面是checkmarx给出的整改方案,但是此方案使用不安全的随机数,会报出另一个漏洞Use of Cryptographically Weak PRNG和Fortify的Inse

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值