在Google Chrome中有一个奇怪的行为,在这个问题中也有描述:rails redirects to 'data:,'
当创建一个新的资源并且我的控制器重定向到显示动作时,chrome在地址栏中使用 'data:,'
启动一个空白页面的加载。提出上述问题的作者的答复如下:
这是一项安全功能,新页面的HTML内容与已提交表单的HTML内容相匹配,Chrome会将其阻止。
然而,没有解释如何修复它。该行为仅在Chrome浏览器中存在。
发布于 2014-01-25 03:45:17
我用谷歌搜索了一下,发现在Rails4.0中编辑带有iframe的帖子会导致重定向到"data:,“
Chrome 4现在为所有请求设置了X-
- protection头,所以在表单提交后,iframe会触发XSS保护。(https://github.com/elektronaut/sugar/issues/41#issuecomment-25987368)
解决方案,将其添加到您的控制器:
before_filter :disable_xss_protection
protected
def disable_xss_protection
# Disabling this is probably not a good idea,
# but the header causes Chrome to choke when being
# redirected back after a submit and the page contains an iframe.
response.headers['X-XSS-Protection'] = "0"
end
发布于 2014-01-23 14:20:03
好吧,我想我知道这是什么了。你可以在data: protocol中指定图片和文本,我相信Chrome看到的是转义的HTML,并认为它就是数据。由于未指定mime类型,因此它将冒号后面的mime类型保留为空,并仅打印逗号。
http://guides.rubyonrails.org/security.html#redirection
Rails 4自动转义HTML,因此如果您试图呈现HTML,则必须指明不转义它。查看渲染选项:
http://guides.rubyonrails.org/security.html#redirection
您可以使用raw()
直接呈现HTML。
https://stackoverflow.com/questions/19106111
复制相似问题