为每种类型的用户提供不同内容的网站(关于安全性)

时间:2018-01-14 01:40:00

标签: javascript php html css security

所以我知道一些html,css,js,php和mysql,但我对安全问题的了解非常有限 对于一个网站,我建立到现在我只使用css display:none(用js触发)来 显示或不显示用户的某些内容,具体取决于他的类型(客户,员工,老板)。 我已经明白,如果你不想冒某个人看到他应该做的事的风险 不(检查页面或其他方式)你不应该发送该信息(从服务器端= php)。 我不确定我的想法是否正确。

如果我有3种类型的用户1)客户2)员工3)老板 我想展示不同的内容(基本上相同的内容,但更多的信息 对于员工,甚至更多的老板来说,他们每个人对网站中存在的5个页面都会有效 每个页面有3个不同的php文件(每种类型的用户一个),在登录过程中为每个用户存储$ _SESSION ['权限']不同的值,并使用该值来决定他在哪个页面可以访问?

例如,起始页面是index.php,当用户根据他的权限级别(从数据库中检索)登录时,他将是 通过使用标题重定向("位置:name_of_page.php");如果他是客户,则为index.php;如果他是雇员,则为index_employee.php 如果他是老板,还可以到index_boss.php。 并且在每个页面中使用以下内容来阻止具有不同权限的用户进入。

index_boss.php

<?php
session_start();
if($_SESSION['authority'] == 2 && $_SESSION['loggedin'] == true) {
?>

page content

<?php
} 
else 
{
    if( $_SESSION['authority'] == 1 )
    {
       header("Location: index_employee.php");
    }
    else
    {
       header("Location: index.php");
    }
}
?>

这是解决此问题的正确方法吗? 有没有办法只为所有用户使用1个php文件,并以其他安全方式隐藏或显示某些内容?

3 个答案:

答案 0 :(得分:1)

这里适当的解决方案是基于角色的系统。换句话说,创建3个角色并将用户置于这些角色中。您需要的对象是:

  1. 用户
  2. 作用
  3. 权限
  4. 可选 - 申请
  5. 可选 - 部分应用程序(例如行动)
  6. 使用这些对象创建基于角色的权限系统。希望有所帮助!

答案 1 :(得分:1)

是的,可以在同一页面中执行此操作!就像这样做山雀: 根据: 1)老板2)员工3)客户的index.php

<html>// Start the session here
<?php session_start();?>
<head>
//Your configuration
</head>
<body>

<?php
if($_SESSION['authority'] == 1 && $_SESSION['loggedin'] == true) {
?>
Here the Contents of the boss
<?php 
elseif($_SESSION['authority'] == 2 && $_SESSION['loggedin'] == true) {
;?>
Here the contents of employee

<?php }else{ ?>
Here the contents of clients
<?php };?>
</body>
</html>

答案 2 :(得分:1)

对于低级别网站,您的实施似乎是正确的。但是,在扩展时,可能很难跟踪网站的每个部分或子部分。

我建议使用类方法(为每个用户创建一个不同的类并使用对象),或者甚至使用一个框架,该框架通常包含在其自己的结构中使用类,以便从您的方面简化实现和编码的过程

您可能希望实现的框架包括CodeIgniter或Laravel(没有特定的顺序) - 请记住,目前,如果检查每次重新加载,您的代码都会执行这些操作 - 在大多数情况下,正确实现的类或框架会自动执行知道该怎么做,反应时间稍微快一点,但更重要的是,更清晰的代码结构和良好的开发基础。