0

我计划提供我的网站设计,如果有人对易于管理的博客感兴趣(或者只是不想为他/她自己的新帖子制作新的 html 文件)这个简单的登录/博客系统就是我将提供它们作为补充。

它的主要目的是通过提供密码(用户名不能更改)只允许一个用户登录,并允许他/她编辑一些帐户设置(显示名称、头像、简历)或创建新页面/帖子将新内容写入窗口。这应该是一个非常简单的系统,没有注册表 - 我想提供给所有选择购买我的设计的客户的框架。

由于登录系统如此简单,我敢说几乎不需要身份验证 - 只需输入密码(+用户输入的任何其他形式,例如新帖子的内容)。所以基本上,它应该具有以下功能:trim(), htmlspecialchars(), mysql_string_escape(), 使用正则表达式和用户会话检查有效字符(顺便说一句,在只有一个用户的网站上甚至需要用户会话吗?)。这么简单的网站还需要什么?我正在考虑使用自签名 SSL 证书,但是,它会导致安全警告。在这种情况下甚至需要它吗?

这个系统将在我从事的每个 HTML/CSS 设计项目中重复使用,所以现在需要决定,因为我将为那些只想运行他们的个人网站的人提供这个框架和网站/blog 没有学习所有的 wordpress 东西。

我知道网站应该加密,但由于这里需要的唯一加密是密码,我应该使用什么?

4

4 回答 4

3

除非您希望客户的登录密码以明文形式通过网络传输,否则您需要 SSL 证书。您可以使用自签名的(如您所提到的),并指示您的客户在他们实际登录之前验证证书中的信息,如果您不想购买合适的证书。一旦你打开了 https 会话,为什么不让它保持打开状态,让用户在相对安全的情况下工作呢?

于 2012-05-08T12:22:43.570 回答
3

请不要滚动您自己的登录系统:

http://cubicspot.blogspot.com/2012/05/dear-web-developers-stop-making-login.html

您还可以获得由浏览器根证书颁发机构签名的免费 SSL 证书:

http://cubicspot.blogspot.com/2011/02/truly-free-ssl-certificates-are-here.html

于 2012-05-16T14:10:20.930 回答
2

如果它应该只有一个可以登录的用户,那么您可以将所有管理内容放在一个单独的文件夹中,并使用密码保护该文件夹.htaccess

在你的.htaccess文件中使用这个

AuthUserFile /full/path/to/.htpasswd
AuthName "Please Log In"
AuthType Basic

.htpasswd是您将存储用户密码的文件。

有关更多信息,请参阅: http: //www.addedbytes.com/lab/password-protect-a-directory-with-htaccess/

于 2012-05-08T12:18:03.933 回答
1

您需要的安全级别与机制的复杂性无关,与您所保护的事物的价值无关。

如果您将此作为一项服务提供,您可能不想要一个允许您的客户创建的网站被黑客接管的弱身份验证系统。如果您在传输过程中不对用户密码进行加密,那么黑客的生活就会变得非常非常轻松 - 他们所要做的就是在星巴克设置,破解 WIFI,观察您的客户登录,然后接管他们的网站。所以,请使用 SSL 证书;自签名可以保护您的数据,但确实会导致安全警告 - 使用适当的证书。

一般来说,用户不信任自签名证书是正确的,因为这是(相当简单的)黑客可能会攻击您的一种方式。例如,如果您想窃取 StackOverflow.com 用户的凭据,您可以注册域 stack0verfl0w.com,并为登录页面颁发自签名证书。用户会看到该证书,它将与(伪造的)域匹配,如果他们习惯于接受自签名证书,他们会继续在黑客的网站上输入他们的详细信息。

所以,是的,您可以使用自签名证书,它会加密网络流量,但训练您的用户忽略浏览器的安全警告并不是一个好主意。“自签名”的定义是它们没有在任何地方注册。

其次,请不要以纯文本形式存储密码。这样做的常用方法是使用单向哈希存储密码(PHP 内置了这个);即使黑客可以窃取您的数据库,哈希函数也是单向的;没有(简单的)方法可以检索明文密码。当用户登录时,您使用相同的算法对他们的密码进行哈希处理,如果数据库中的哈希匹配,您就让他们进入。

第三,考虑使用现成的身份验证框架。http://hybridauth.sourceforge.net/index.html似乎符合您的要求。一般来说,最好为这类事情使用现成的解决方案,因为您的用户有期望,通过自定义代码满足这些期望是昂贵的,而且容易出错......

许可是一门黑暗的艺术,但总的来说,开源框架可以根据非常宽松的要求重新分发(通常,您只需要告诉人们您正在包含一个开源组件)。

于 2012-05-08T12:29:25.687 回答