在WebKit中,我在JavaScript上收到以下错误:
拒绝执行JavaScript脚本.请求中找到的脚本源代码.
代码适用于JavaScript微调器,请参阅ASCII Art.
用于正常工作的代码仍可在Camino和Firefox中正常运行.当页面通过POST保存然后通过GET检索时,似乎只会抛出错误.它发生在Chrome/Mac和Safari/Mac中.
任何人都知道这意味着什么,以及如何解决这个问题?
可以通过X-XSS-Protection
在受影响的页面上发送非标准HTTP标头来禁用此"功能" .
X-XSS-Protection: 0
这是防止XSS(跨站点脚本)攻击的安全措施.
当一些JavaScript代码通过HTTP POST请求发送到服务器时会发生这种情况,并且相同的代码通过HTTP响应返回.如果Chrome检测到这种情况,则会拒绝运行该脚本,并且您会收到错误消息Refused to execute a JavaScript script. Source code of script found within request
.
另请参阅此博文中关于深度安全性:新安全功能.
简答:在初次提交javascript后刷新页面,或点击将显示您正在编辑的页面的URL.
答案很长:因为填写到表单中的文本包含javascript,浏览器不一定知道你是javascript的源代码,浏览器认为你不是这个JS的源代码更安全,并且不要运行它.
一个例子:假设我给你一个链接你的电子邮件或Facebook上有一些javascript.并且想象一下,javascript会向你的所有朋友发送我的酷链接.因此,获取该链接的游戏变得简单,找到一个发送javascript的地方,以便它将被包含在页面中.
Chrome和其他WebKit浏览器会尝试通过不执行响应中的任何javascript来降低此风险(如果请求中存在该javascript).我的邪恶攻击会被挫败,因为你的浏览器永远不会运行那个JS.
在您的情况下,您将其提交到表单字段中.表单字段的帖子将导致显示Javascript的页面呈现,导致浏览器担心.但是,如果您的javascript确实已保存,则在不提交表单的情况下点击同一页面将允许它执行.