【问题标题】:Creating a webpage with user accounts, what do I need to keep in mind?使用用户帐户创建网页,我需要记住什么?
【发布时间】:2011-03-05 20:31:12
【问题描述】:

我正在尝试编写一个具有用户帐户的网站。除了密码和电子邮件地址之外,没有太多敏感信息。但我真的不明白我在做什么;我一边走一边破解它。关于安全性或任何其他重要细节,我有什么需要注意的吗?

【问题讨论】:

    标签: php security mysqli user-accounts


    【解决方案1】:

    Sarfraz Ahmed 提供了一些很好的阅读资源。您还可以使用 PHP 类进行用户身份验证,有很多。我自己在 sourceForge http://uflex.sourceforge.net 上建立了一个名为 userFlex 的项目

    userFlex 有一个不错的文档,它不仅仅是登录用户;它进行注册和字段验证、密码重置、注册确认码、处理会话以及更像自动登录。

    我再次以 userFlex 为例,您还可以查看http://www.phpclasses.org/browse/file/5269.htmlPHPclasses.org 中的许多其他好的类。

    【讨论】:

      【解决方案2】:

      使用JanRain Engage (formerly rpxnow.com) 进行身份验证。他们的解决方案允许人们使用他们现有的来自 Google、Yahoo、Microsoft、Facebook 和其他公司的凭据登录您的网站。作为身份验证过程的一部分,其中许多提供商会提供有效的 OpenID,并且通常会提供有效的电子邮件地址。

      如果您使用 JanRain,则只需存储用户的电子邮件地址或 OpenID,并且您不必存储密码或密码哈希。此外,您不必实现任何密码重置功能,或“忘记我的密码”。此外,您的用户注册功能可能会小得多,因为您使用其所有者提供的有效电子邮件地址或 OpenID 启动它。

      您的应用程序和 JanRain 之间的通信经过身份验证和加密,因此一切都很好且安全。

      【讨论】:

      • 没错,但也要记住,OpenID 也有缺点。有关这方面的有趣对话,请参阅 stackoverflow.com/questions/410085/…
      • 当我说 OpenID 时,我指的是 JanRain Engage 的版本。他们在幕后使用 OpenID,而用户永远不必看到它。用户只能看到他们从 Goog/Yahoo/MS/FB 等人那里知道的用户 ID 和密码。除了身份提供者的登录页面之外,您无需在任何页面中输入您的用户名和密码。
      • 这实际上可能是我最终会使用的。谢谢你给我看这个。
      【解决方案3】:

      您必须使用 MD5 php 函数作为密码。保护它的简单方法。还要确保你在 php 中使用 strip_tags,这样别人就不能在你的输入框中执行命令。由于没有任何有意义的数据,我认为您不需要加密任何东西。只要确保登录系统是完美的,并且用户没有登录就没有其他方式访问数据..

      一个基本的登录脚本就足够了..

      【讨论】:

      • "您必须使用 MD5 php 函数" => 虽然建议对密码进行哈希处理,但 md5() 并不是唯一的方法...
      • 事实上,您不得使用 MD5 进行密码散列,而应使用更慢且专为密码设计的东西,例如 BCRYPT 甚至 SCRYPT。
      【解决方案4】:
      猜你喜欢
      • 2016-11-25
      • 2018-05-30
      • 1970-01-01
      • 2014-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多