【问题标题】:Is it possible to hack Angular 2 disabled input tag?是否可以破解 Angular 2 禁用的输入标签?
【发布时间】:2017-05-06 18:37:17
【问题描述】:

例如,我的组件模板中有这部分代码:

<input type="text" class="form-control" [(ngModel)]="profileUser.role" name="role" [disabled]="!isAdmin">

在我的组件模块中,我有:

if (this.currentUser.role == "Admin")
{
  this.isAdmin = true;
}

我想只为那些具有“管理员”角色的用户授予编辑此输入字段的权限,并为其他用户禁用此字段(但向他们显示 profileUser.role 的当前值)。

这是安全的解决方案,还是可以破解输入标签属性并访问禁用字段,然后更改其值并使用提交按钮更新它。

如果第二个陈述是正确的,请建议以最安全的方式在 ngForm 上显示此类数据,并以 ngModel 双向绑定为界。

【问题讨论】:

  • 是的,当然用户可以在他们的计算机上做任何他们想做的事情。他们可以毫不费力地将脚本、模板和值更改为任何内容。不,这根本不重要,因为您肯定会检查用户在服务器上的角色,因此即使他们更改了输入字段,它也不会做任何事情。
  • 谢谢,我明白了。

标签: angular typescript angular-ngmodel angular2-ngmodel ngmodel


【解决方案1】:

您必须在两个方面保护您的数据:客户端和服务器。客户端代码必须控制数据输出(但它可以在客户端以多种方式被破解)和数据输入 - 数据验证。

但所有重要数据的访问和存储必须在服务器端进行仔细检查。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 2016-02-26
    • 2019-11-16
    相关资源
    最近更新 更多