通过在浏览器中更改DOM来防止黑客入侵的简单方法?

时间:2014-08-30 19:32:12

标签: asp.net webforms

我有一个列出用户属性的表单,即Role,Group,IsApproved,...对于admin,这些已启用并可以更改。但对于普通用户来说,这些仅用于显示目的。该程序在加载表单时禁用它们。

问题是:对于普通用户,一旦他们看到这些,他们就可以使用开发人员工具来更改DOM中的值。例如,Role是一个下拉列表,它显示:Admin / GroupAdmin / User:

<select name="ctl00$MainContent$ddlRoles" id="MainContent_ddlRoles" class="aspNetDisabled" style="width:100px;" disabled="disabled">

<option selected="selected" value="Admin">Admin</option>
<option value="GroupAdmin">GroupAdmin</option>
<option value="User">User</option>

</select>

现在,用户删除了

disabled="disabled"

然后ddlRoles就可以了,用户可以更改它。

我的问题是:更新数据库时是否必须检查权限?或者,在asp.net中有一种简单的方法可以防止这种情况吗?

由于

2 个答案:

答案 0 :(得分:2)

您无法在任何浏览器中保护DOM不被更改,显然您需要检查服务器上的用户权限。

您可以在代码中设置条件,因此如果用户没有任何权限,页面将为没有此元素的用户呈现,但在更新数据库时始终添加服务器端权限检查,因为客户端总是可以被编辑或“黑客攻击”。

答案 1 :(得分:1)

因为这似乎主要是客户端应用程序,所以您在浏览器中执行的身份验证类型主要是隐藏和禁用功能。这似乎正是你正在做的事情。

您需要进行服务器身份验证才能真正保护您的终端,并防止只是操纵您的前端的用户进行调用。