PHP管理员帐户
问题描述:
在我的网站上,当有人使用管理员帐户登录时,我想要启用一些选项。我的问题是关于如何尽可能保护管理员帐户。他们的方式登录是在我的网站设置是认证登录后,我这样做$_SESSION['status'] = 'authorized';
然后我说这样的事情:PHP管理员帐户
<script>
$(document).ready(function(e) {
if(<?php echo ($_SESSION['status'] == 'authorized'); ?>) {
$('#account_window').show();
}
});
</script>
<div id="account_window">
//account stuff
</div>
由于增加了主帐户,我想加入这个$_SESSION['master'] = 'authorized';
,然后在中首页,我会添加此代码:
但我觉得这太容易了,是一种安全的方式来验证主帐户?如果没有,那么做什么最好的方法呢?
答
将管理界面从“非管理员”隐藏起来可能会很诱人,但如果有人只是将正确的HTML注入页面(例如使用GreaseMonkey脚本)或手动生成请求,那么这基本上是可以绕开的。
您必须验证PHP中的每个动作才能获得任何实际的安全性。因此,您需要在PHP中提交任何表单或提交操作时检查用户是否有权访问。
答
您必须验证PHP中的每个动作才能获得任何实际的安全性。因此,您需要在PHP中提交任何表单或提交操作时检查用户是否有权访问。
什么会阻止我在浏览器中使用inspect元素并显示这个隐藏的div?你应该**对数据库授权**而不是在会话中。 – AlexP
就安全会话功能而言它是安全的,所以 - 是的。 KISS –
未授权时隐藏内容是很大的安全失败,如果他们查看html代码,他们将会看到所有内容.plus会话应针对用户进行验证,例如,如果db记录属于用户A和用户B想要的可以highjack到用户A的内容并删除它们..如果你只是检查用户会话状态只。记住它只说你只是登录,但它表明你有权编辑其他人的东西.. – mahen3d