我希望扩展到这个问题之外: Obfuscating POST variables between Javascript & PHP
我想出了这个解决方案:http://pastebin.com/YuAAZTLi
它的工作时间是95%,但是5%我无法真正处理。很难真正基于两个不同服务器的时间。用变量发送腐烂太容易破解。
我需要的东西每次都有希望改变,因为我不希望HTTP POST请求被复制。什么加密方法在javascript和PHP之间可以互换,允许md5类型加密。其中
4500看起来像Dusfh7sfSFJf78dfns8和4501之类的东西,比如JF7Fhene7fdHfdshf6d ..没什么相似的,即使它们是1位数。允许外部图书馆,但请确保链接php和javascript对应。
答案 0 :(得分:1)
只需使用SSL。几乎所有东西都支持它,安全问题已经得到了广泛的解决。设置有点棘手,但有关于如何在那里进行操作的大量信息;即使是证书也不再贵了。
答案 1 :(得分:1)
这有点特定于处理用户登录的情况,但我在this answer和提问者ran with it中提出了一个协议,并编写了一个HTTP-sniffer-resistant PHP-to-JavaScript登录表单实施
该计划的要点:
- 生成随机现时值;这有助于防止重播攻击。
- 将nonce值和密码salt发送到浏览器 与其余的登录表单。
- 您正在将密码存储在salted中 和散列形式,对吗?
- 当用户输入密码时,请在表单上计算脚本 并发送回哈希(hash(密码,盐),nonce)。
- 当服务器收到表单提交时,让它计算哈希值(storedSaltedPassword,nonce)并验证它是否等于提交的 值。
- 保留nonce值 服务器;不要相信客户 回复你,或你的重播 保护已经消失。
这个计划的弱点在于 密码哈希在数据库中 在某种意义上是密码等价的; 虽然它可能不可行 提取用于的原始密码 产生那些哈希,知识 存储的哈希就足够了 冒充您网站上的用户。