所以,如果我理解正确你的问题:
- 你可以使用跨域请求访问的Web应用程序。
- 该应用程序将部署在本地网络上,即它将通过非公共IP地址(服务于该网络的机器,我将称之为“本地服务器”)访问。
- 您希望保护客户端和本地服务器之间的链接,最好使用SSL。
你可以这样做!使拥有本地服务器控制权的人获得somesubdomain.SomeDomainHeControls.com
的SSL证书,将该证书部署到本地服务器,并将该子域指向本地IP。当通过该地址访问应用程序时,您将不会收到任何警告,并保证连接。只要客户端只使用该域访问您的应用程序,这是安全的,因为只有服务器的所有者才能访问该密钥。
如果您自己控制本地服务器(无人可以提取私钥),则可以简单地为*.aDomainForThisPurposeThatYouControl.com
获取wildcart证书,并为每个部署创建一个指向相应IP的子域。
如果您不控制本地服务器,并且谁不能获得自己的证书,您可以获得个人证书。这意味着您创建了deployment1.aDomainForThisPurposeThatYouControl.com
,将其指向本地IP,为该名称创建常规单主机证书,并将其安装在本地服务器上。为了安全起见,请不要将该域用于其他任何事情,因为您已经为该域上的主机提供了私钥。
如果本地网络可以访问互联网,您也可以在您控制的外部服务器上托管应用程序本身。将常规SSL部署到该服务器。在安全地从外部服务器加载应用程序本身之后,它可以使普通的HTTP请求从本地服务器获取数据。这将触发“混合内容”警告,但没有SSL错误。然后,您可以使用基于JavaScript的加密来保护数据。例如,如果只希望保护从客户端到服务器的数据,则外部可信服务器可以向客户端提供受信任的JS加密库和内部服务器的RSA公钥(通过SSL认证的连接),那么您只需在通过普通HTTP发送数据之前在客户端加密数据。理论上,您甚至可以在JavaScript中创建SSL客户端,向客户端提供脚本和可信服务器证书,使用HTTP或WebSockets隧道,并通过此隧道在本地服务器和JavaScript客户端之间运行您自己的SSL连接。这当然不是很实际,但是很安全(因为JS是通过安全连接下载的)。您也可以从受信任的服务器加载一个小型JavaScript,然后从本地服务器下载剩余的JavaScript,验证签名/散列并执行它。 Megaupload正在做类似的事情。
“应用程序只使用JavaScript,我不知道如何保护它”我会说,因为JavaScript是客户端语言,您无法保护它! – 2013-05-03 11:24:18
WIFI在此设置中的作用是什么? – likeitlikeit 2013-05-04 11:29:50
即使通过Open Wi-Fi访问您的Web应用程序,使用SSL(HTTPS)也将提供安全通信(完整性和机密性),因为所有HTTP请求和响应数据在通过网络发送之前都已加密。保护Wi-Fi涉及使用无线安全协议之一,有线对等保密协议(WEP)或Wi-Fi保护访问协议(WPA)(http://en.wikipedia.org/wiki/Wireless_security),它可以无论使用SSL,都可以使用,以保护您的开放式Wi-Fi。请注意,SSL可在您的客户端和您的网络应用程序之间提供互联网保护。 – 2013-05-07 18:48:49