技术范围: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和准备好的引用标题创建自己的请求。
安全系统接受了此操作。 (推荐人 - 好的,令牌 - 好的)
我该如何避免呢?
答案 0 :(得分:0)
设计XMLHttpRequest时,此方案已经考虑到了令牌。结果是XMLHttpRequest级别1(历史性)根本不允许任何跨源请求。使用XMLHttpRequest级别2(当前),如果服务器根据Cross-Origin Request Sharing允许,则仅允许客户端读取对跨源请求的响应。
因此,除非请求来自同一来源或您允许任何来源,否则不允许客户阅读回复。