小智 5
您可能需要考虑以下几点:
1)它是使用md5加密还是sha1(sha1更好).
2)是否使用腌制?
3)是否确保仅允许https访问?(理想情况下,http://登录/密码页面应重定向到https://版本).
4)忘记密码如何工作?理想情况下,密码重置链接应发送到已注册的电子邮件ID,而不是直接在线访问.如果有一些内置的安全问题 - 它们是否足够强大?安全问题是否正确加密?
问候,
J.P
在快速浏览代码时,我认为您不应该使用此代码,因为它可能会受到损害.
PS:我也不认为你应该学习那些东西(如果你想学习openid规范/库,而是留给安全专家.你应该使用openid/facebook connect/etc.我使用rpxnow.com很多乐趣.
第一个代码库是旧的.最后提交是August 11, 2009.我会看一个更加维护的loginsystem(更新).例如,它不使用更新/更安全的PDO来访问您的数据库.我也发现代码库有点乱.没有MVC?
不确定此代码库是否强制执行SSL.如果不是,您的密码将以纯文本形式传输.
由于mysql注入=> https://github.com/ivannovak/jpmaster77-s-Login-System-/blob/master/mail.php#L118,此代码可能不安全
$q = "SELECT * FROM mail WHERE UserTo = '$user' ORDER BY SentDate DESC";
Run Code Online (Sandbox Code Playgroud)
如果session->username已被编译(没有查看所有引用),则系统不安全.一个体面的(现代)系统使用PDO.
我不相信系统确实使用salt,因此使用Rainbow表可以在数据库受到威胁时发现所有密码.=>
https://github.com/ivannovak/jpmaster77-s-Login-System-/blob/master/include/session.php#L157
$result = $database->confirmUserPass($subuser, md5($subpass));
Run Code Online (Sandbox Code Playgroud)
这也是线路很奇怪(不安全)=>
https://github.com/ivannovak/jpmaster77-s-Login-System-/blob/master/include/mailer.php#L34
你无法从互联网.