【发布时间】:2011-12-05 16:33:37
【问题描述】:
我正在开发一个网站,该网站与该网站一起具有管理面板。
网站根文件夹:/htdocs
网站的其他公开内容仅在/htdocs文件夹中。
管理网站文件夹:/htdocs/admin
我的问题:我需要做些什么来确保我的管理面板(或网站)免受攻击?
这些是我正在做的事情:
-
/htdocs/admin文件夹中的每个文件都设置为权限:444 (r--r--r--) 的 Linux。 -
adminLogin.phpadmin 文件夹中的文件正在使用 POST 方法发送validateCredentials.php的凭据将指示 在正确的用户名和密码后发送至adminHome.php。成功登录时会设置以下会话变量(以及其他变量):$_SESSION['usertype'] = "admin"; - admin 文件夹中的所有其他文件在文件顶部都有一个检查 对于有效的管理会话变量。如果没有会话变量, 然后页面将重定向到 adminLogin.php
- 管理员密码存储为 MD5 哈希值
admin_login_details表。此表与整个数据库在同一个数据库中 的网站。我收到了this 的问题,让密码存储更加安全。 - 在验证
admin_login_details表中的密码时,输入的 密码首先传递给 mysql_real_escape_string() 然后使用 -- 来 防止 SQL 注入。
还需要什么?以上几点是否正确?如果有什么是潜在的安全问题?
如果需要,请添加更多积分。
我在 CentOS 服务器上使用 PHP、MySQL、Apache。
【问题讨论】:
-
Nitpick:md5 是哈希函数,不是加密方法。
-
@Mark:是的。编辑了我的问题!
-
没有理由将密码以纯文本形式存储在数据库中。只需要一个黑客(内部或外部)来获取该数据库并炸毁那个定时炸弹。