我有一个允许您嵌入YouTube视频的表单,当它发布POST时,它会呈现YouTube视频。问题是Safari(自5.0起)有一个XSS Auditor抛出此消息:Refused to load an object. URL found within request: "http://www.youtube.com/v/ZO7EiX5TqLY?version=3".
它适用于正常的GET后续词。有没有办法在没有重定向的情况下解决这个问题?
答案 0 :(得分:2)
我在#webkit:
上用abarth
解决了这个问题
Safari 5试图通过不允许出现在POSTed参数中的嵌入来阻止reflective XSS attack。
我可以做两件事:
X-XSS-Protection: 0
标题,表示我知道自己在做什么,并且可以自行防范XSS。答案 1 :(得分:1)
POST的规格表示重定向:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
如果已在该资源上创建了资源 原始服务器,响应应该是 201(已创建)并包含实体 它描述了。的状态 请求并指新的 资源和位置标题(请参阅 第14.30节。
对此方法的回应不是 可缓存,除非响应 包括适当的Cache-Control或 过期标题字段。然而 可以使用303(参见其他)响应 指示用户代理检索 可缓存的资源。
既然你说它适用于后续的GET请求,那是否意味着你试图直接在POST响应中返回嵌入对象?如果是这样,似乎违反了规范,XSS Auditor可能就在这里。如果我误解了这个问题,你能澄清一下吗?