我正在编写一个Greasemonkey脚本来连接两个公司内部网页。一个是SSL,另一个是不安全的,只能通过POST请求访问。如果我在安全页面上创建一个隐藏的表单并通过onclick()
中的<a>
提交,则可以正常工作,但FF会发出警告:
虽然此页面已加密,但您输入的信息将通过未加密的连接发送,并且可以由第三方轻松阅读。
您确定要继续发送此信息吗?“
不安全页面无法通过SSL访问而另一个页面无法访问它,我无法修改任何服务器= \有没有办法通过某种方式来避免此警告JavaScript / Greasemonkey重定向魔术?谢谢!
编辑:警告不能被禁用(出于相当好的理由,因为很难判断你要发送的内容是否安全,否则)。我主要想知道是否有一种方法可以在JavaScript中进行POST,而不会看起来像是在提交表单。答案 0 :(得分:2)
这可以通过GM_xmlhttpRequest来实现。如,
GM_xmlhttpRequest({
method: 'POST',
url: 'http://your.insecure.site.here',
onload: function(details) {
// look in the JavaScript console
GM_log(details.responseText);
/* This function will be called when the page (url)
has been loaded. Do whatever you need to do with the remote page here.*/
}
});
API /更多信息:GM_xmlhttpRequest wiki
答案 1 :(得分:1)
您可以将新的SSL站点设置为仅将数据传递回不安全站点的代理。或者只是让所有用户关闭该特定安全警告。 (对不起FF团队,但这并不是一个非常有用的消息。)
答案 2 :(得分:1)
我很欣赏这个回复对原版海报不会有太大帮助。他们似乎很好地掌握了这个警告信息所涵盖的安全状况。无论如何,我发帖是因为我已经看到许多要求完全抑制此警告信息的呼吁而对后果几乎一无所知。它与原帖的编程环境有点偏离主题,但是从其他似乎认为这个警告信息不太有用的回复中,我认为重要的是人们要理解决策背后的推理和安全情况。允许在所有情况下都禁止此警告。
在原始帖子的特定情况下,忽略错误消息提供 POST的信息不敏感可能是合适的。否则,永远不适合以明文形式发布敏感数据,并且Mozilla人员坚持认为在任何情况下都不能禁用此特定消息是正确的。
否则,人们可能会建立非常糟糕的表单,在没有警告的情况下通过不安全的互联网明确发布您的信用卡详细信息或其他敏感信息。当这些敏感信息遍历互联网时,它几乎肯定会越过那些您不想共享这些敏感数据的人控制的网络。因此警告。删除它或允许它一直被忽略,你删除了人们已经依赖电子商务等的SSL,TLS和HTTPS的可信度。
如果你怀疑人们会无法创造这样的形式,我就会在不到一个小时前从一个网站上购买。至少Firefox警告我,我可以将问题转发给网站所有者。
让我们在这里非常清楚。问题出在网站所有者,不与Firefox或Mozilla开发团队。正如我所说的那样,有时候从安全站点以明文形式发送POST数据可能是合适的,但是如果没有人为干预就无法区分这种情况。这就是为什么不能用一揽子政策来抑制这种信息的原因,也不应该这样做。
将特定表单添加到URI标识的特定表单中可能是合适的,因为用户可以识别表单中的所有信息都不敏感,前提是输入表单的信息不会更改。然而,AFAIK Mozilla团队还没有这样做。
我注意到很多人将此警告消息与关于混合HTTP和HTTPS内容的警告混淆,这是一种非常不同的情况,但不幸的是,它提供了一个非常相似的警告消息。这种情况是页面中的某些内容受HTTPS保护而某些内容不受HTTPS保护。这不是休闲网上冲浪的问题,例如,可以在其中保护带有未受保护的广告的受保护内容,例如回复中给出的MSDN示例。
但HTTPS不仅可以保护网页的隐私,还可以保护网站的完整性,保证没有人修改传输中的数据。因此,如果您需要保证您正在查看的网页的全部没有受到干扰,则需要这种更强大的保证,并且不应禁用混合内容警告,至少对于您的敏感网页而言。
答案 3 :(得分:0)
这是一个浏览器配置设置,Javascript无法(或不应该)进行更改。
除非脚本需要由多个用户使用,否则工具 - &gt;选项 - &gt;安全。您可以单击设置以显示显示的警告消息。请注意,这当前会影响所有站点,而不仅仅是内部系统。