首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止非法访问PHP网页?

如何防止非法访问PHP网页?
EN

Stack Overflow用户
提问于 2014-08-20 06:34:53
回答 5查看 1.5K关注 0票数 0

我在我的网页访问方面有一个问题。在登录中,它已经可以区分用户是否是管理员。管理员与普通用户有不同的页面。

我的问题是,如果用户更改地址栏中的地址,例如:

代码语言:javascript
复制
home.php -> ordinary user
home_admin.php -> administrator 

如果用户更改地址栏中的地址,普通用户也可以访问home_admin.php。我所有的页面都在使用会话。

任何建议我如何解决我的问题。

提亚

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-08-20 06:38:17

您必须在会话中保存当前的访问权限状态。在此之后,您可以创建一个条件,如果他没有足够的权限检索页面的内容,请将他重定向到另一个站点。

就像这个例子

代码语言:javascript
复制
<?php

if($_SESSION['user_role'] !== 'administrator') {
   // redirect him
}

?>
票数 0
EN

Stack Overflow用户

发布于 2014-08-20 06:37:27

你不能阻止人们索取东西。在给他们所要求的东西之前,你必须对他们进行认证和授权。

管理PHP程序必须:

  1. 检查会话是否存在
  2. 使用会话数据检查用户是否已登录。
  3. 使用会话数据检查该用户是否为管理用户。

…如果其中任何一个不是真,它应该返回一个错误消息,而不是管理内容。

票数 1
EN

Stack Overflow用户

发布于 2014-08-20 06:45:02

如果您正在使用会话,您可以通过以下流程来实现这一点:

  1. 登录用户时,存储用户是否是管理员。您可以通过$_SESSION['admin'] = FALSE (如果用户是管理员)来实现这一点(或者TRUE )。您不必像我一样使用精确的语法。但是类似这样的东西,可以识别用户是管理员还是普通用户。
  2. 如果用户是管理员,即$_SESSION['admin'] = TRUE,允许他们使用home_admin.php。可以通过在home_admin.php文件中添加以下代码块来做到这一点: session_start(); if($_SESSION['admin'] == FALSE){ header('Location: home.php'); exit(); } // Rest of your page.

PS:在呈现任何HTML或调用任何PHP代码之前,请确保在页面顶部添加第2点的代码。

希望它能回答你的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25398175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档