我有一个托管服务提供商的网站,它没有给我一个固定的IP地址,所以我不能使用https。我想使用webform编辑一些页面,但是要安全。
客户端将是一个iphone类型的设备,因此java或flash applet是不可能的。
服务器上的语言目前是php,但它可能是ruby,python,perl或lua。
答案 0 :(得分:12)
安装SSL证书在技术上并不需要固定的IP地址 - SSL证书与主机名(公用名)相关联。我们经常更改主机上的IP地址,并且从未更改与证书相关的任何内容。
那就是说,你确实可以使用JavaScript等,但它并不是一个很好的解决方案 - 它总会闻起来像黑客。
答案 1 :(得分:5)
您可以使用某种形式的public key encryption implemented in javascript:
这会阻止任何人在线上嗅探您的敏感信息,但不会提供任何针对中间人攻击的保护。 SSL使这种攻击变得有点棘手,但并非不可能。
答案 2 :(得分:4)
不是传统意义上的,没有,但有一些选择:
获得更好的托管服务。你可以每月20美元a VPS with a fixed IP。每年30美元的证书。对于需要安全保障的人来说相当便宜。
您可以加密表单数据using javascript and PGP。这很便宜(它会让你的用户看到它),但它应该保持你的数据足够安全。
可能有第三方允许通过其服务器(以及扩展名)提交表单。您和您的用户必须相信他们不要滥用数据。
答案 3 :(得分:3)
在 theory 中,您可以使用Javascript和XmlHttpRequests在客户端和服务器之间实现某种安全通信。在实践中,它听起来像很多工作,而且它快速而真实安全的可能性似乎很低。
正如亚历克斯上面所说,即使你设法在JS中实现,你仍然必须通过不安全的连接向客户端提供JS,因此使它完全没有意义。
然而,在Javascript之前已经实现了更疯狂的事情......
答案 4 :(得分:1)
我会说答案是否定的。原因是没有https,所有流量都是未加密的纯文本。因此,任何人都可以读取客户端上的任何加密算法或密钥交换。我可能错了......我从未尝试过。
答案 5 :(得分:1)
理论上可行,只要您可以控制客户端并且(例如)在那里有可信赖的javascript,而不是从服务器下载的。我可以详细说明,但与使用https相比,这些行上的任何内容都是PITA并且容易出错。
此外,没有必要拥有固定的IP - 你有域名吗?
答案 6 :(得分:0)
如何使用Javascript?为了使浏览器执行javascript,它必须首先从(先前声明的)不安全的服务器下载它。 HTTPS是一种服务器/客户端协议,因此如果您无法使用服务器本身,则根本无法实现它。
HTTPS所需的只是一个IP地址,因此如果更改则无关紧要。您应该能够将HTTPS与动态IP一起使用,但您可能需要与您的主机进行通信。如果您的托管位于共享服务器上,那么它将无法运行,您将需要专用IP。它们并不贵,所以也许你应该每月花掉3/4美元?
亚历
答案 7 :(得分:0)
SSL使用域名而不是IP地址。只要您拥有并拥有域名,并且让服务提供商愿意打开端口443并安装您为您的网站购买的证书,您就可以执行HTTPS。
话虽如此,假设你不能这样做,请查看SRP:
来自网站:“SRP是一种安全的基于密码的身份验证和密钥交换协议。它解决了安全地向客户端验证客户端的问题......此外,SRP交换了一个加密密集的秘密作为成功的副产品身份验证,使双方能够安全地进行通信。“
他们有一个Javascript示例。您可以使用副产品通过网络加密数据。
然而,像大多数海报一样,你最好转移到新的提供者。
答案 8 :(得分:0)
差不多2年了,但现在JavaScript中有一个开源SSL / TLS实现。但是,它目前依赖Flash来提供原始套接字访问...所以除非应用程序要在Android手机而不是iphone上运行,否则它可能没那么有用。
答案 9 :(得分:0)
是。您可以使用Private Forms中使用PGP加密的嵌入表单。
私有表单是SaaS,它在将数据发送到服务器之前对客户端的Web表单数据进行加密。然后,此加密数据将发送给您。所有数据都使用您的PGP公钥加密,只有您可以使用PGP私钥解密。
因此,填写表格的人知道它的安全",但他们不需要熟悉细节(如生成密钥等)。