是否可以破解 Angular 2 禁用的输入标签?
Is it possible to hack Angular 2 disabled input tag?
例如,我的组件模板中有这部分代码:
<input type="text" class="form-control" [(ngModel)]="profileUser.role" name="role" [disabled]="!isAdmin">
在我的组件模块中我有:
if (this.currentUser.role == "Admin")
{
this.isAdmin = true;
}
我只想授予具有 "Admin" 角色的用户编辑此输入字段的权限,并为其他用户禁用此字段(但向他们显示 profileUser.role 的当前值).
这是安全的解决方案还是可以破解输入标签属性并获得对禁用字段的访问权限,而不是更改其值并使用提交按钮更新它。
如果第二个陈述是正确的,请建议在 ngForm 上显示此类数据的最安全方法,以 ngModel 双向绑定为界。
您必须在客户端和服务器两方面保护您的数据。客户端代码必须控制数据输出(但它可以在客户端以多种方式被破解)和数据输入 - 数据验证。
但是对所有重要数据的访问和存储必须在服务器端进行双重检查。
例如,我的组件模板中有这部分代码:
<input type="text" class="form-control" [(ngModel)]="profileUser.role" name="role" [disabled]="!isAdmin">
在我的组件模块中我有:
if (this.currentUser.role == "Admin")
{
this.isAdmin = true;
}
我只想授予具有 "Admin" 角色的用户编辑此输入字段的权限,并为其他用户禁用此字段(但向他们显示 profileUser.role 的当前值).
这是安全的解决方案还是可以破解输入标签属性并获得对禁用字段的访问权限,而不是更改其值并使用提交按钮更新它。
如果第二个陈述是正确的,请建议在 ngForm 上显示此类数据的最安全方法,以 ngModel 双向绑定为界。
您必须在客户端和服务器两方面保护您的数据。客户端代码必须控制数据输出(但它可以在客户端以多种方式被破解)和数据输入 - 数据验证。
但是对所有重要数据的访问和存储必须在服务器端进行双重检查。