从用户 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 反应式表单字段是不是安全?的主要内容,如果未能解决你的问题,请参考以下文章
使用 javascript 和 PHP 验证每个类元素,然后从下一步按钮中删除禁用的类