【问题标题】:XMLHttpRequest over SSL from unsecure page来自不安全页面的基于 SSL 的 XMLHttpRequest
【发布时间】:2011-12-17 19:10:10
【问题描述】:

这种设置有多安全?

不安全的页面“http://www.site.com”使用 POST 发出 XMLHttpRequest 到网址“https://www.site.com/dosomething.asp”

页面 dosomething.asp 设置了标题“Access-Control-Allow-Origin: http://www.site.com” 并返回一些需要安全的用户相关数据。

没有错误,一切顺利。

实际的 POST 请求有多安全? 此请求中的 responseText 有多安全?

【问题讨论】:

  • 一旦您将非 SSL 组件引入您的应用程序,您就失去了 SSL 的所有好处。你只有最薄弱的部分是安全的。这就是浏览器向用户报告混合 SSL/非 SSL 内容作为安全警报的原因。

标签: ajax ssl security


【解决方案1】:

我能看到的最重要的问题是您的不安全页面不安全(好吧,很明显)。如果有人试图对那个不安全的页面进行中间人攻击,他们可以编辑页面的功能(使用 JavaScript 注入等)来拦截发送到安全 URL 和从安全 URL 接收的内容。您最好在安全模式 (SSL/TLS) 下使用这两个页面。

【讨论】:

  • 好吧,这是我的想法——也许我错了。假设不安全页面有两个表单域用户名和密码。与 dosomething.asp 的连接仅通过 SSL 进行,并且如果 responseText 是安全的……那么它是否足够安全以满足基本的隐私要求?
  • 不在我将开发或负责的应用程序中。您的方法将保护数据免受网络上的“窥探”,但正如我在上面所避开的那样,不保护原始页面将为某人留下更容易利用以拦截请求和响应的开放路径。除非您有充分的理由不这样做,否则我强烈建议您只保护两个页面。这也将增加您的用户的信心,因为当用户实际输入他们的数据时,网络浏览器将显示为“安全模式”。
  • 好吧,为了解决这个设置中最紧迫的问题,我们可以做些什么......如果这个设置由于某种原因无法更改?并且浏览器“安全模式”对于向用户显示并不重要......在这种情况下。
  • @user980261 是的 ziesemer 是正确的。 SSL 要么全有,要么全无,您不能拥有部分安全的系统。
【解决方案2】:

一旦您将非 SSL 组件引入您的应用程序,您就失去了 SSL 的所有好处。你只有最薄弱的部分是安全的。这就是浏览器向用户报告混合 SSL/非 SSL 内容作为安全警报的原因。

【讨论】:

    【解决方案3】:

    Wireshark 是一个监控通过网络传输的网络数据包的程序。它是免费且受欢迎的。回答这个问题的最终方法是获取 Wireshark,花一天时间学习并应用它。

    查看来自源站点的流量的过滤器是:

    (ip.src == [源IP地址]) && (ip.dst == [目标IP地址])

    交换 ip.src 和 ip.dst 以查看返回的内容。实际上,您实际上可以将两者结合在一个过滤器表达式中。

    如果您位于数据包所通过的网络上,这将起作用。

    最后一项:这是对 PKI (https/SSL/TLS) 的描述:http://www.mitre.org/news/the_edge/february_01/steve.html

    我 Wireshark 遇到了类似的情况,并确认我正在发送和接收 TLS (https) 流量。但具体情况并非如此,所以我不想推测。

    【讨论】:

    • 不确定你在这里想说什么。这样的 XHR 将通过 HTTPS 发送这一事实并不意味着整个设置是安全的(请参阅@ziesemer 的回答)。问题与此非常相似:stackoverflow.com/a/8893704/372643
    • Wireshark 将允许用户实际查看数据是否使用 TLS 加密。 Wireshark 需要一些时间来适应,但它是一个非常强大的工具,可以用来检查网络流量。我有一个 https 登录页面,我从中发送登录凭据。一切都在https上。查看网络流量,很明显数据是使用 TLS 加密的。因此它是安全的。
    • 另外,我习惯于尽量利用次优情况。也许发帖人可以研究 AES 加密:msdn.microsoft.com/en-us/magazine/cc164055.aspx - 我已经看到这在需要传输安全的应用程序中效果很好。
    • 我不认为一次性的观察可以使总体设计安全。您在尝试时会看到 TLS 流量这一事实并不意味着您的所有用户都会如此。此处的漏洞在于页面的服务方式(纯 HTTP)以及攻击者可以更改它以更改指向另一个(可能是攻击者自己的 HTTP(S) 网站)的链接这一事实。
    猜你喜欢
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 2011-09-01
    • 2012-04-12
    • 1970-01-01
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多