如何在禁用模式下保护按钮?

时间:2011-06-02 06:13:02

标签: javascript asp.net

如果用户无权访问该按钮,我想禁用该按钮。我是                             在Page_Load事件中禁用

 Page_Load() {
      if(!userhasrights) {
           btn.Enabled=false;
      }
 }

但在渲染asp.net后,只将其disabled属性设置为disabled                         黑客可以很容易地设置为“真正的”&可以访问该按钮。我怎么能够                         在禁用模式下保护我的按钮?

4 个答案:

答案 0 :(得分:2)

您无法保护按钮的html状态,因为用户始终可以对其进行修改。

按下按钮时,您应该进行服务器端验证,并向无权点击它的用户返回错误/警告。您仍然可以使用禁用状态以实现可用性。

另一个解决方案是,当用户无权点击它时,不会生成按钮。如果您确实需要禁用按钮,请添加图像而不是按钮。

答案 1 :(得分:1)

我建议你不是在javascript的客户端,而是在服务器端使用 if ... else

在你的脚本中它应该是这样的

if(userHasRights)
{
       // display code for button
}
else
{
       //display appropriate message
}

答案 2 :(得分:1)

不应使用按钮的Enable属性,而应使用Visible属性使其安全,因为如果控件的Visible属性为false,则不会呈现。所以不存在黑客攻击的问题。

Page_Load() {
      if(!userhasrights) {
           btn.Visible=false;
      }
 }

答案 3 :(得分:0)

根据知识和经验,安全应尽可能贴近您的代码。

就像执行需要特殊优先权的代码之前一样。