为什么最终用户可以启用禁用元素?

时间:2011-03-19 09:11:34

标签: asp.net

我在ASP.net页面中使用c#代码禁用文本框,代码如下: Textbox1.Enabled = FALSE; 防止用户更改特定值。 如你所知Textbox1.Enabled = false;在html模式下将转换为disabled =“disabled”css prpoerties。 但不幸的是,最终用户可以通过Firefox Firebug删除此css属性并启用文本框并按下提交按钮并将更改后的值发送到服务器。 那我该怎么办?

2 个答案:

答案 0 :(得分:2)

你永远不应该 - 相信用户输入。通过网站表单提交的所有内容均为用户输入。没有什么可以阻止别人提交他们非常好的东西,你甚至不应该尝试。

相反,您应该在服务器上检查/验证这些值。如果它只是一个值,你只想显示给它们,但不允许它们改变,那么就不要让你的代码隐藏检查价值......因为你知道它不应该改变。

如果您根据用户是“管理员”还是其他内容启用/禁用该TextBox,那么您做错了。

答案 1 :(得分:0)

与从浏览器中获取的任何数据相同。

  • 只信任用户信任它(如果你不使用SSL,那就少一点)
    • 不受信任的用户可能正在进行攻击
    • 受信任的用户可能犯了错误
  • 检查它是否合理(如果导致禁用该字段的条件成立,则检查该字段是否未提交)
  • 在使用之前逃避任何数据(例如,在将数据插入数据库之前用于SQL,然后在将其放入HTML文档之前用于HTML)。