如果用户无权访问该按钮,我想禁用该按钮。我是 在Page_Load事件中禁用
Page_Load() {
if(!userhasrights) {
btn.Enabled=false;
}
}
但在渲染asp.net后,只将其disabled属性设置为disabled 黑客可以很容易地设置为“真正的”&可以访问该按钮。我怎么能够 在禁用模式下保护我的按钮?
答案 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)
根据知识和经验,安全应尽可能贴近您的代码。
就像执行需要特殊优先权的代码之前一样。