我开始编写一个小型的web应用程序,并开始考虑保护登录(仅用于管理)。
如果可以的话,我会安装一个CACert或自签名的SSL证书,因为现在我是唯一登录的人,但我的主机并不太乐于助人。
在不使用SSL的情况下,有没有什么合理的方法来保护站点?我一直在考虑身份验证的选项:
所有这些的问题是:
登录是安全的,其他一切都在clear hijacked
我能想到的确保登录后应用程序安全的唯一选择是一些令人厌恶的JavaScript和PHP来回发送加密的ASCII二进制文件。我不想这么做。
有没有什么加密(用于页面加载和帖子)可以在我选择的服务器端脚本语言中实现,而不需要我的主机的支持或参与,但这将由浏览器支持?会话可以在没有SSL的情况下(实际上)防止劫持吗?
在这种情况下,你会怎么做?
发布于 2009-09-01 21:15:17
您可以安全地进行身份验证,而无需实施窃听保护。例如,您可以阻止其他人发送请求,即使他们可以读取您的请求的内容。如果你需要防止窃听,我建议你去可以使用SSL的地方。
如果您只需要简单的身份验证而没有真正的安全性,那么您的提供商可能会支持HTTP Basic。当您担心其他问题时,这(以及限制功能的良好设计和备份)是一个合理的临时解决方案。
为了验证你的身份,OpenID不能重播。每个身份验证序列都是经过签名的。但是,OpenID本身只允许您与服务器建立身份。它不允许您签名或以其他方式验证请求。OAuth可以,但它需要对协议的一部分进行传输加密。
您可以使用共享密钥对每个请求进行签名。这将防止攻击者提交或重放请求,但请求本身仍可被窃听者读取。请参阅Amazon AWS身份验证(包括客户端库)或flickr身份验证的文档。基本协议是:
在请求parameters
发布于 2009-08-31 05:52:22
如果您将此作为尝试不同身份验证和加密方法的一种有趣方式,这是很好的,但最便宜和最直接的解决方案是获得一个可以安装SSL证书的主机。
发布于 2009-08-31 05:52:14
如果您在会话中注册了远程IP地址,则无法对其进行劫持。尝试使用不同IP地址的会话的人很容易被检测到。PHP Sessions默认使用它(我猜它是不可选的)。简单高效的解决方案。
https://stackoverflow.com/questions/1355952
复制相似问题