【发布时间】:2011-07-01 19:30:58
【问题描述】:
我正在开发一个 ajax 门户,我需要一些建议。我的客户希望它相当安全,但不想处理 ssl。没有要存储的超敏感数据,所以我在页面初始化时进行自定义“握手”。
由于每次会话我都会处理 2 组新的非对称密钥和一些对称密钥,我想知道您将如何处理这些密钥。这可能会驻留在共享主机上,而且我到处都读到在这种情况下会话文件不能真正被信任......
现在我将一些信息存储在会话文件中,指向数据库中的正确键。一切正常(嗯,我认为:))...现在我想在用户会话结束时从数据库中删除键,所以我最终不会得到充满无用键的表。
即使我知道它很糟糕,但我在关闭窗口/浏览器时尝试了一个 ajax 调用......这确实很糟糕并且不一致,所以这个选项不合适。我还考虑过一项 cron 作业来擦除约会超过几天的每个键,但对我来说有点“未完成”......
我的问题是: 我想知道 ssl 如何处理它的密钥?在用户会话持续期间它们存储在哪里?您如何处理/将如何处理?
编辑
是的,我应该知道这个问题会导致那个。
我知道 ssl 将是最好的选择,我很遗憾我已经编写了我的应用程序。我会和我的客户多谈一些关于这件事的,但我没有什么希望。如果他仍然想使用 http,我不会冒险放弃合同来证明我的观点,并且我将有一个替代方案来保护其不敏感的数据(有点登录信息,没有信用卡......)。
是的,“相当安全”是合适的,因为没有系统是完全安全的。 “相当安全”意味着一个刚下载wireshark的黑客,或者在youtube上观看视频做中间人攻击的黑客将无法进入。我会说它已经比所有的好很多了最近被一些青少年羞辱的数十亿游戏公司。
Nasko 给出了正确答案,他回答了我的部分问题并提出了一些明显的建议,但并没有自大。
【问题讨论】:
-
“你们如何处理/将如何处理这个?”我会坚持使用 SSL!如今,证书像芯片一样便宜。它会比编写自己的 IMO 更快、更稳定、更安全。对于客户来说,更快意味着更便宜。
-
我的想法与我试图解释的内容完全一致……无论如何,由于他对此很固执,我已经编写了握手的实现来加密会话通信。现在我只是想知道当用户终止会话时存储和优雅地摆脱所有这些生成的密钥的最佳方式。正如我所说,我目前将它们存储在数据库中。谢谢你的回答。
-
永远不要实现自己的密码学!使用 SSL。如果您不想为正确签名的证书付费,请使用自签名证书。
-
"希望它相当安全,但不想处理 ssl。"这种说法是荒谬的,完全没有用。使用已经存在的 ssl,不要重新发明轮子。有很多供应商提供免费的,如果您担心的话,或者您可以免费生成一个。
标签: php mysql ajax security ssl