从用户 HTML 检查和手动属性删除中禁用 Angular 反应式表单字段是不是安全?

Posted

技术标签:

【中文标题】从用户 HTML 检查和手动属性删除中禁用 Angular 反应式表单字段是不是安全?【英文标题】:Is Angular reactive form field disabled safe from user HTML examination and manual attribute removal?从用户 HTML 检查和手动属性删除中禁用 Angular 反应式表单字段是否安全? 【发布时间】:2019-01-02 07:58:08 【问题描述】:

我现在正在处理一些 Angular 6 项目,我想知道反应式表单是否是用户安全的。我在想一个像下面这样的例子:

  'durationControl': [
      value: this.duration,
      disabled: !this.permissions.durationEnabled
    , [rangeValidator(1, 360), Validators.required]],

这种代码是否可以防止用户在 html 中单击元素并按下“检查”,然后从代码中删除“已禁用”?

我们已经尝试过了,它可以轻松完成,我们可以操纵应该禁用的字段的值。如果自表单创建以来将此元素设置为禁用并且不应该更改,是否会再次验证或检查?

我现在无法在完全运行的应用程序上检查它,因为我们没有任何完整的提交实现,也没有足够的后端来做到这一点。我检查了角度文档,但没有发现任何相关内容。任何简单的解释或示例,如果它实际上是否有效(任何其他来源都会很棒)?提前致谢。

【问题讨论】:

【参考方案1】:

您必须在后端检查模型(验证或访问权限),客户端的所有内容都可以伪造。

【讨论】:

谢谢你的回答,好吧很明显,我们需要在后端增加额外的安全层,但我希望 Angular 会......对此做点什么,我不知道,也许会忽略这些保存表单或其他任何内容时的值。无论如何感谢您的帮助:)【参考方案2】:

您可以在 TS 文件中执行一项操作,例如验证和恢复所有禁用的控件。

您可以将禁用的控制器显示为标签。

【讨论】:

以上是关于从用户 HTML 检查和手动属性删除中禁用 Angular 反应式表单字段是不是安全?的主要内容,如果未能解决你的问题,请参考以下文章

能否删除系统后台服务中已禁用(乱码)项?

从按钮引导程序 4 中删除禁用属性

使用 javascript 和 PHP 验证每个类元素,然后从下一步按钮中删除禁用的类

Alfresco - 如何让管理员无法从 Active Directory 中删除用户

如果用户禁用了推送通知,如何从混合应用程序中检查?

手动设置用户绑定属性