嘿伙计我有一个管理页面,在提交任何查询之前检查你是否是管理员,并且如果你不是管理员,则包含索引页面的标题,但我担心保护页面。我担心有人可能会用它破坏我的数据库。有没有人有任何建议来保护这样的页面,如果没有,我应该通过phpmyadmin手动管理我的数据库并一起删除页面吗?
实施例
function isAdmin(){
return ($this->userlevel == ADMIN_LEVEL ||
$this->username == ADMIN_NAME);
}
if(!$session->isAdmin()){
header("Location: ../index.php");
return;
}
admin值存储在数据库中,表示ADMIN_LEVEL
答案 0 :(得分:3)
网站拥有管理员部分是相当普遍的,但您必须确保在每个页面上插入,删除等任何内容之前,用户是管理员,您正在做的事情。
但是,拥有一个允许您输入显式SQL语句并执行它们的页面可能不是一个好主意。您可能很容易输入错误的内容,如果出现问题,它确实会留下更大的安全漏洞。更大,更容易访问系统管理员级命令,具体取决于设置。
更不用说自己弄乱的事情了。
直接SQL查询是您拥有phpMyAdmin的原因。管理员部分通常旨在成为您数据的GUI前端,就像普通用户的网站一样,但具有更大的能力范围。诸如能够列出所有用户,通过受控表单编辑用户数据,然后使用按钮更新或删除它们。
答案 1 :(得分:1)
对我而言听起来很受保护。使用您的配置,是否更容易或很容易破解您的网站,而不是运行phpMyAdmin的开发者?可能不是更有可能。听起来你做的一切都是正确的。如果您仍然担心,您可以限制执行sql以选择在db危险方面相当无害的语句。