Javascript 隐藏敏感内容的正确方法?
如果有不同类型的用户,并且有一些内容我只想让他们的一部分看到哪种方法是正确的?到目前为止,我使用display:none来隐藏内容,但是如果用户查看页面,他可以看到它 示例:有一个页面(houses.php)包含各种房屋,每个房屋下面都有业主的电话号码,如果登录用户不是管理员,则使用display:none(通过js)隐藏该号码。如何在服务器端实现相同的结果 编辑:是在登录到Javascript 隐藏敏感内容的正确方法?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,如果有不同类型的用户,并且有一些内容我只想让他们的一部分看到哪种方法是正确的?到目前为止,我使用display:none来隐藏内容,但是如果用户查看页面,他可以看到它 示例:有一个页面(houses.php)包含各种房屋,每个房屋下面都有业主的电话号码,如果登录用户不是管理员,则使用display:none(通过js)隐藏该号码。如何在服务器端实现相同的结果 编辑:是在登录到$\u会话['authority']期间存储用户权限的正确方法,例如,当用户访问houses.php时,对php文件进行a
$\u会话['authority']
期间存储用户权限的正确方法,例如,当用户访问houses.php时,对php文件进行ajax调用,检查$\u会话['authority']
是否足以显示用户的电话号码。如果足够,它将存储到$\u会话['phone\u number']
电话号码,如果不是,则不会。然后在html中,通过执行以下操作决定是否显示它:
<?php
if($_SESSION['authority'] == 1) {
?>
<div name="phone_number"> Phone number : <?php echo $_SESSION["phone_number"]; ?> </div>
<?php } ?>
电话号码:
还是像这样
<div name="phone_number">
<?php
if($_SESSION['authority'] == 1)
{
echo "Phone number: ";
echo $_SESSION["phone_number"];
}
?>
</div>
这是一种安全的方法吗?如果您不希望某些客户端访问某些数据,唯一的方法就是不要将其发送给他们 您必须考虑到,并非所有HTTP客户端都是web浏览器——有些程序可能会复制浏览器的行为,以进入您的用户数据。如果您依赖html/css/js来隐藏敏感信息,那么它只对浏览web浏览器的人有效,对其他任何东西都完全无效
因此,所有敏感信息都必须经过授权&HTTPS。在浏览器中执行的任何操作都不是真正安全的。将其隐藏在服务器上。任何客户端解决方案仍将存在与您现在相同的问题,即在检查页面/查看源代码时仍然可见,即使您使用“null”覆盖内容,这意味着内容以前已出现在屏幕上,这意味着任何用户只要知道自己在做什么就可以找到它。如果用户查看页面的源代码,源代码中的任何输出都将始终可用。正如Rory所说,最好的方法是使用服务器端语言验证用户,并根据用户的角色将正确的信息输出到it服务器端,不要使用客户端代码来确定是否应该加载。例如,JavaScript使用AJAX调用为某些用户引入内容,这是不允许的,因为它很容易被黑客攻击。在服务器上执行所有此类决策。