我知道使用SSL是实现这一点的一种方法。我上了Facebook和LinkedIn这样的网站,发现他们只在处理密码和个人设置等敏感数据时才使用https。这是怎么做的?他们如何能够在一些网站上实现https,同时在其他网站上使用http,同时仍然保持安全,或者他们是吗?
发布于 2009-04-17 18:34:05
这种方法并不安全。使用HTTPS是安全的,但是一旦你切换到HTTP,所有的数据都是通过一条未加密的线路传输的。会话ID cookie (或维护状态和用户身份)也是如此。所以还有一个漏洞可以窃取未加密线路上的信息,并试图冒充你。
但是这种双通道的方法是很常见的。因为HTTPS有一些缺点。一个是代价高昂(加密传出数据和解密传入数据),另一个是它至少禁用了公共缓存。
发布于 2009-04-17 18:27:58
他们的HTTP站点是不安全的--通常,HTTPS的开销在处理社交网络登录之类的事情时被认为是不必要的。例如,StackOverflow是不安全的--具有网络嗅探器的人可以拦截登录cookie并冒充用户。
如果您只需要检查登录是否有效,并且不太关心可用性,您可以使用digest authentication。它提供了一种安全可靠的方式来通过HTTP传输用户名和密码。当然,从网站发回或由用户提交的任何数据都容易被嗅探。
简而言之:如果您需要安全性,请使用HTTPS。你甚至可以从像CAcert这样的网站上获得免费的证书。
发布于 2009-04-17 18:41:56
这取决于你试图保护的是什么,以及如果你不使用https,你想给用户带来多大的麻烦。
您可以有选择地加密javascript中的数据,以便只保护敏感信息,但这是有风险的,因为在javascript中所做的任何事情都可能被逆向工程。
您可以在这里查看我的答案,以获得使用javascript完成此操作的一种方法:How Do I encrypt post data while using ajax and JQuery?
如果你只是不希望数据在传输时被修改,你可以创建一个散列,或者如果你将数据保存为散列,也可以将其转换为散列。密码通常保存为散列,因此这对它们来说是有意义的。
您可以在javascript中完成所有这些操作,但它会减慢数据的传输速度。
如果您使用的是webservices,它也通过http,那么这些选项也可以工作,但它们可以更快,因为程序不是在javascript中。
https://stackoverflow.com/questions/761613
复制相似问题