【发布时间】:2011-03-05 20:31:12
【问题描述】:
我正在尝试编写一个具有用户帐户的网站。除了密码和电子邮件地址之外,没有太多敏感信息。但我真的不明白我在做什么;我一边走一边破解它。关于安全性或任何其他重要细节,我有什么需要注意的吗?
【问题讨论】:
标签: php security mysqli user-accounts
我正在尝试编写一个具有用户帐户的网站。除了密码和电子邮件地址之外,没有太多敏感信息。但我真的不明白我在做什么;我一边走一边破解它。关于安全性或任何其他重要细节,我有什么需要注意的吗?
【问题讨论】:
标签: php security mysqli user-accounts
Sarfraz Ahmed 提供了一些很好的阅读资源。您还可以使用 PHP 类进行用户身份验证,有很多。我自己在 sourceForge http://uflex.sourceforge.net 上建立了一个名为 userFlex 的项目
userFlex 有一个不错的文档,它不仅仅是登录用户;它进行注册和字段验证、密码重置、注册确认码、处理会话以及更像自动登录。
我再次以 userFlex 为例,您还可以查看http://www.phpclasses.org/browse/file/5269.html 或PHPclasses.org 中的许多其他好的类。
【讨论】:
使用JanRain Engage (formerly rpxnow.com) 进行身份验证。他们的解决方案允许人们使用他们现有的来自 Google、Yahoo、Microsoft、Facebook 和其他公司的凭据登录您的网站。作为身份验证过程的一部分,其中许多提供商会提供有效的 OpenID,并且通常会提供有效的电子邮件地址。
如果您使用 JanRain,则只需存储用户的电子邮件地址或 OpenID,并且您不必存储密码或密码哈希。此外,您不必实现任何密码重置功能,或“忘记我的密码”。此外,您的用户注册功能可能会小得多,因为您使用其所有者提供的有效电子邮件地址或 OpenID 启动它。
您的应用程序和 JanRain 之间的通信经过身份验证和加密,因此一切都很好且安全。
【讨论】:
您必须使用 MD5 php 函数作为密码。保护它的简单方法。还要确保你在 php 中使用 strip_tags,这样别人就不能在你的输入框中执行命令。由于没有任何有意义的数据,我认为您不需要加密任何东西。只要确保登录系统是完美的,并且用户没有登录就没有其他方式访问数据..
一个基本的登录脚本就足够了..
【讨论】:
【讨论】: