Php 如何防止用户发布其密码?

Php 如何防止用户发布其密码?,php,security,Php,Security,有人知道如何防止用户使用php在网站上发布密码吗?您可以在会话中或任何您想要的地方存储密码,并在用户发布评论时尝试匹配密码,但我不会这样做,因为: 您将最终将清除密码存储在某个非常糟糕的地方 你会用上百张无用的支票把你的代码弄得乱七八糟 我认为在这种情况下,预防是最好的办法,只要在你的注册和登录页面上做一个很好的宣传,用户不应该给出他们的密码,把它发布在网站上 另一种方法是像BeemerGuy提到的jsut雇用一些人来管理你网站上的评论 您可以完全禁止(密码)使用字典中的单词、姓名、日期或人

有人知道如何防止用户使用php在网站上发布密码吗?

您可以在会话中或任何您想要的地方存储密码,并在用户发布评论时尝试匹配密码,但我不会这样做,因为:

  • 您将最终将清除密码存储在某个非常糟糕的地方
  • 你会用上百张无用的支票把你的代码弄得乱七八糟
我认为在这种情况下,预防是最好的办法,只要在你的注册和登录页面上做一个很好的宣传,用户不应该给出他们的密码,把它发布在网站上

另一种方法是像BeemerGuy提到的jsut雇用一些人来管理你网站上的评论

您可以完全禁止(密码)使用字典中的单词、姓名、日期或人们在对话中可能使用的任何其他字符序列。然后,对于每条消息,循环遍历消息中的每个单词,对其进行散列,然后将其与散列密码存储进行比较

这将需要大量的CPU,而且很容易绕过

如果人们想成为傻瓜,告诉别人他们的帐户详细信息,你不能阻止他们

为了让他们免于网络钓鱼,你只能教育他们


为了避免多人共享一个帐户,您只能查找表明该帐户正在共享的模式(例如一次从多个不同的IP地址登录-但要小心,因为人们可能同时从计算机和电话访问服务,或者使用ISP在其用户面前扇旋转代理)。

你见过这种情况吗?可能没有

原因:

  • 或者您需要将密码保存为纯文本(幸运的黑客!)
  • 或者,您需要对每个单词进行散列,以将其与散列密码进行比较,这非常昂贵
所以你就是做不好!
甚至不要尝试,向用户解释为什么它不好,只是希望他们不要发布它…

@mcbeab:你正在为一家银行的网站编写代码;-)提供一个过滤器,将他们的密码转换为某个单词。例如,SO使用drool。我的密码是:口水。看见你自己试试吧!(开玩笑)既然你应该对密码进行哈希和盐析,你就无法知道用户的密码是什么。因此,至少在理论上,没有任何方法可以判断用户是在发布纯文本还是密码,如果你要检查他们发布的所有文本,并测试他们输入的所有子字符串组合,看看它们是否与哈希匹配,这将是非常密集的,那么你就会有安全问题@比默盖是对的;没有简单的方法可以确保用户没有在其他输入字段中提交密码。即使技术实现完全不合理,你也应该问问自己为什么这些措施很重要。个人注意:下次选择“microsoft”或“firefox”之类的密码。)还有@Ragez——你们中的一个拼错了另一个的名字@比默盖伊:修正了我最深的歉意。