维护用户登录和信息的安全数据库?

Raf*_*ler 0 database security login userinfo

我希望在我正在建立的慈善网站上有一个登录表单(这是给朋友的,我正在学习),我想知道我应该学习哪些语言/软件来构建用户登录和信息的数据库?注意:对于具有中等编程经验的人来说,它是安全的并且相对简单易学.

更新:我知道CMS提供了很好的登录工具等,但我想自己做这一切.

Mik*_*ike 5

您可以做的最简单的事情是在将密码输入数据库之前对您的密码进行哈希并应用盐."邪恶跳蚤"在另外一个问题一个很好的答案在这里.

您是否考虑过抢购现成的CMS?最体面的CMS应该包含一个简单的慈善网站所需的所有功能.它还可以为您的登录表单问题提供可靠的解决方案.

编辑

至于使用什么语言.只要你对它感到满意并愿意付出时间和精力,这真的不是很重要.它会在您的个人资料中显示您正在学习PHP.看起来像在PHP中编写登录表单将是一个很好的起点.至于数据库后端.再次,它并不重要.请不要使用MS Access.大多数PHP开发人员(假设)似乎都使用MySQL,因为它通常包含在PHP Web主机中.

关于安全性,散列和在密码中添加盐是您可以做的最简单的事情.你可以这样做:

  • 用户点击注册链接
  • 使用SSL启动注册表单
  • 用户单击提交按钮后
  • 哈希密码.加盐.存储在数据库中.在哈希密码中添加salt可以防止使用彩虹表来强制密码.看看这里处理散列密码的函数.
  • 您还可以强制用户使用特定规则创建密码.例如,要求所有密码大于6个字符,至少一个数字等...

一旦用户需要登录,您可以执行类似以下操作:

  • 获取用户名并清理它.记住永远不要相信用户输入.如果上帝自己想在你的网站上开帐户并不重要.
  • 转义密码以确保没有帐户的人通过SQL注入获得访问权限.您可以使用PHP的mysql_real_escape_string函数执行此操作.
  • 完成所有操作后,您可以查询数据库以查看是否返回了任何行.

最后,绝不要以纯文本格式向用户发送密码.如果用户忘记了密码,只需允许他们创建新密码即可.您可以通过向用户发送电子邮件中的链接来执行此操作,这将使他们能够执行此操作.

老实说,您最好的选择可能是完成此任务并使用您的代码在SO上回复(新问题).从那里我们可以分析它并从那里采取它.

这些方面的东西应该满足您的要求.