客户端显示,隐藏是有风险的

时间:2011-06-02 04:49:45

标签: javascript asp.net

我有一个包含按钮的div。我最初设置div显示:none&取决于我使用javascript向用户显示的用户权限。

<div id="mydiv" style="display:none">
    <asp:Button id="btn" runat="server"/>
</div>

PageMethods.GetRights(onsuccess);

function onsuccess(result){
   if(result.isaccessible)
   {
      $("#mydiv").show();
   }
}

显示,隐藏客户风险。我不想使用updatepanel,如果它有风险,我有什么替代品呢?

3 个答案:

答案 0 :(得分:1)

当用户点击butotn并将请求发布到您的服务器时,您需要重新检查用户是否可以访问此功能..

处理此问题的一种更简单的方法是向正文添加一个类

< body class="logged_in" >

如果他们已登录..

然后css规则

#mydiv { display: none; }
.logged_in #mydiv { display: block; }

答案 1 :(得分:1)

如果用html检查器将显示更改为“阻止”,任何人都可以查看此div。 如果您希望此信息保持私密性,我建议采用不同的方式。

第一种也是最好的方法是跳过JavaScript并使用服务器检查用户的权限并显示div。

第二种方法是进行Ajax调用。如果您希望使用JavaScript,那么我建议您使用ajax调用服务器以获取所需信息。让服务器检查用户权限并在成功时返回div。然后只需将div的html替换为从服务器返回的html。这样的事情可能有用:

var getHiddenDiv = function(){
   $.ajax({
      url: yourUrl,
      type: GET,
      success: function(data){
         $("#mydiv").html(data);
      }
   });
};

答案 2 :(得分:0)

这一切都取决于我们的应用程序结构。如果隐藏div中的数据保密,则决不会将其显示为无安全方法,因为客户端可以完全访问所有客户端数据。但是当谈到调用后端行为的按钮时,您还应该对所有请求进行后端验证。