我正在创建一个网站,它使用带有函数的类来修改数据库中的信息,并向用户提供信息,但是当用户登录时,他们可以访问同一个类和所有函数 - 包括我不想要的函数他们能够使用。这里有某种安全问题吗?
我的想法是,自从PHP被解析之后甚至没有进入浏览器和用户,因此他们访问未经授权的功能的唯一方法是访问使用它的页面 - 但我可以用另一种方式保护这些页面以防止这种情况发生。
我的想法是否正确,还是我完全离开了?
提前感谢您的帮助!
答案 0 :(得分:3)
想一想:用户是否有任何方式可以以您不想要的方式调用您的某个功能? (示例可能是访问某个链接,单击按钮或其他用户界面的东西。)
正如您所说,PHP在服务器上进行解释。除非您能够实现,否则用户无法调用/触摸您的源代码。
重要提示:尽管用户无法看到用户界面并不意味着它是安全的。
如果访问某个链接或提交某个表单会执行某项功能,隐藏该链接或表单将无法解决您的问题。用户仍然可以在其浏览器中输入该链接,或者伪造执行该操作的POST请求。
您可以通过检查当前用户是否具有在运行时执行特定操作的权限来解决此问题。
示例:
if (isUserLoggedIn()) {
doSomething();
}
if ($user->isAdmin()) {
doSomething();
}
if ($_SESSION['user']['role'] == 'admin') {
doSomething();
}
答案 1 :(得分:0)
您的功能如何调用?
如果用户无法访问您不想要的功能,那么您就在那里。
确保他们无法以非预期的方式编辑任何变量......