如何保护页面免受高科技CSRF的影响

时间:2012-09-05 16:41:43

标签: javascript ajax security web-applications http-headers

技术范围:PHP,MySQL,Apache,javascript,ajax。

CRSF

用户登录到他的安全页面。

Page使用随机令牌和随机名称。 (输入)

   <input name="random_name" value="random_token" />

Random_name和Random_token存储在用户SESSION中。

脚本检查标头(HTTP 1.1 - referrer)。

在我看来,这些方法无法保护我与Ajax(页面输出)分析。


Ajax(页面输出)分析:

用户访问了一个糟糕的页面。

加载页面后, Ajax与他的页面建立了连接(使用准备好的HTTP referrer标头)。 并下载数据。

解析输出(输入)。

成功解析后。

使用,Random_name,Random_token和准备好的引用标题创建自己的请求。


安全系统接受了此操作。 (推荐人 - 好的,令牌 - 好的)

我该如何避免呢?

1 个答案:

答案 0 :(得分:0)

设计XMLHttpRequest时,此方案已经考虑到了令牌。结果是XMLHttpRequest级别1(历史性)根本不允许任何跨源请求。使用XMLHttpRequest级别2(当前),如果服务器根据Cross-Origin Request Sharing允许,则仅允许客户端读取对跨源请求的响应。

因此,除非请求来自同一来源或您允许任何来源,否则不允许客户阅读回复。