我只是想知道这个登录系统是否安全,因为我曾计划将其用作学习工具。我不想使用任何会教我错误方法的东西。谁能帮忙?
最佳答案
当快速浏览代码时,我认为您不应该使用此代码,因为它可能会被泄露。
P.S:我也不认为你应该学习那些东西(如果你想学习 openid 规范/库,但把它留给安全专家。你应该使用 openid/facebook connect/等。我使用 rpxnow。非常高兴。
旧代码库
第一个代码库是旧的。最后一次提交是 2009 年 8 月 11 日
。我会看一个更维护(更新)的登录系统。例如,它不使用更新/更安全的 PDO 来访问您的数据库。我还发现代码库有点乱。没有 MVC?
SSL
不确定此代码库是否强制执行 SSL。否则,您的密码将以纯文本形式传输。
Mysql注入(inject)
由于 mysql 注入(inject),此代码可能不安全 =>
https://github.com/ivannovak/jpmaster77-s-Login-System-/blob/master/mail.php#L118
$q = "SELECT * FROM mail WHERE UserTo = '$user' ORDER BY SentDate DESC";
如果 session->username
已被泄露(没有查看所有引用资料),那么您的系统是不安全的。一个体面的(现代)系统使用 PDO。
无盐
我不相信系统确实使用盐,所以使用 Rainbow table当您的数据库遭到破坏时,可以发现所有密码。 =>
https://github.com/ivannovak/jpmaster77-s-Login-System-/blob/master/include/session.php#L157
$result = $database->confirmUserPass($subuser, md5($subpass));
其他你应该考虑的事情
- CSRF
- XSS 攻击
本地主机?
另外这条线很奇怪(不是不安全)=>
https://github.com/ivannovak/jpmaster77-s-Login-System-/blob/master/include/mailer.php#L34
您无法从互联网访问本地主机。
关于php - 这个登录系统安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4425780/