Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为每种类型的用户提供不同内容的网站(关于安全)_Javascript_Php_Html_Css_Security - Fatal编程技术网

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

Javascript 为每种类型的用户提供不同内容的网站(关于安全),javascript,php,html,css,security,Javascript,Php,Html,Css,Security,所以我知道一些html、css、js、php和mysql,但我对安全问题的了解非常有限 对于我目前正在构建的一个网站,我只是使用css显示:none(用js触发)来 显示或不显示某些内容,具体取决于用户的类型(客户、员工、老板)。 我明白如果你不想有人看到某样东西的风险,他应该 不(检查页面或其他方式)您根本不应该发送该信息(从服务器端=php)。 我不确定我的想法是否正确 如果我有3种类型的用户1)客户2)员工3)老板 我想展示不同的内容(基本上是相同的内容,但更多的信息) 对于员工,甚至是老

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

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

例如,起始页面是index.php,当用户根据其权限级别(从数据库检索)登录时,他将 使用标题重定向(“Location:name_of_page.php”);如果他是客户,则索引index.php;如果他是员工,则索引_employee.php 如果他是老板,则索引_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");
    }
}
?>
<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>

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

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

  • 使用者
  • 角色
  • 许可
  • 可选-应用程序
  • 可选-应用程序的一部分(例如操作)

  • 使用这些对象创建基于角色的权限系统。希望有帮助

    是的,可以在同一页中执行此操作!就这样做吧: 根据:1)老板2)员工3)客户 index.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");
        }
    }
    ?>
    
    <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>
    
    //在此处启动会话
    //您的配置
    这里是老板的内容
    这里是员工培训的内容
    这里是客户的内容
    
    对于低级别站点,您的实现似乎是正确的。然而,随着您的扩展,可能很难对网站的每个单独部分或子部分进行跟踪

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


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

    像这样在html代码中添加php代码是安全的吗?用户能否以某种方式看到该会话值?