我读过一些XSRF的解决方案,依靠增加更多的令牌的响应,这也有助于保护,只有在POST运行的代码。

即。这将是一个一个步骤攻击依靠它响应HTTP GET

的网页上
<img src="http://amazon.com/buybook/anarchistscookbook/mailto/me/execute.php">

但随着像jQuery更好的库,它变得越来越容易编写恶意的JavaScript XmlHttpRequest的脚本,可以做两步攻击(一个GET,解析反XSRF视图状态/查询字符串/额外的Cookie等),然后提交一个POST 。 (或者是什么?我不担心被AES很快破获任何时候,我应该甚至担心2步XSRF攻击针对HTTP POST操作变得如上图所示img标签攻击那么容易?)

我想了一步攻击大多可通过没有做任何事情上GET sensive被tharted,可能这两种攻击,要求该网站用户解决一个CAPTCHA,然后yeilds查询字符串令牌将被tharted需要为用于该会话的其余部分的所有URL吗

到目前为止,它似乎将只有当CAPTCHA失败,失败诸如如果OCR软件可以读取文字或如果有一个机械特克组件。

编辑:考虑到特定的攻击是与XHR JavaScript或图像标签的电子邮件。因此,代码会在电子邮件客户端的浏览器或从本地文件系统加载的HTML页面来执行。对于纯朴的缘故,比我想象的网站有没有XSS vulnerabilties(即恶意用户注入他们的HTML进入该网站将作为响应的HTML没有机会)

有帮助吗?

解决方案

的一点是,JavaScript不能读取跨域上下文抗XSRF令牌,并且XMLHttpRequest是相同来源而已,所以它不能被用于窃取的令牌。

如果您的网站已经有一个XSS漏洞,你已经大清洗,反XSRF令牌不会帮你。

其他提示

无论的XMLHttpRequest和JavaScript帧操纵工作跨域这些天;这将是纯粹的疯狂。 CSRF攻击像你提到的或autogenerating形式,这些天通常由两种图像标记的那个帖子转到其他网站。然而,检索抗XSRF令牌(大概在每会话基础生成的加密随机数)几乎是不可能的。只有当它是一个非常可怜的令牌不检查用户会话和IP地址可以在服务器端语言可能被利用进行检索,然后用客户端CSRF相结合。除了令牌,很多人驻足CSRF简单地通过检查的引荐和阻止所有远程域。提交CSRF与XMLHttpRequest的几乎是不可能得益于域限制。

在任何情况下,你不用担心的XmlHttpRequest能够访问远程域。唯一一次这样的事情可能发生的,如果你有一个XSS漏洞,在这种情况下,作为EricLaw说,你已经大清洗。

我想你感到困惑的同源策略。在本地文件请求html页面是不规避这一政策。事实上,我beleive更严格的规则适用于文件资源。你会发现,在使用Javascript本地HTML文件将的的能够做出一个成功的请求中检索非本地资源。

  

现代浏览器不允许使用Javascript   在本地HTML文件访问远程   HTTP资源。

在哪个浏览器你能够成功地从一个文件执行跨域XHR:///资源

我在IE6,IE7,IE8,火狐3测试此,火狐3.5和铬,歌剧,和Windows上的Safari的最新版本;它们都拒绝跨域http请求。

<html>
<head>
<script 
  type="text/javascript" 
  src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
  $(document).ready(function() {
    $( '#xhr' ).append( 'replace me with remote xhr' );
    $( '#xhr' ).load( 'http://stackoverflow.com/', function() {
      $( '#xhr' ).append( 'xhr load complete' );        
    });
  });
</script>
</head>
<body>
  test
  <div id="xhr">original</div>
</body>
</html>

可能的是,一些多旧的浏览器限制较少。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top