Javascript 避免篡改CRM表单中的只读字段
我们在CRM中实现了一个内部项目管理/考勤模块,主要是在JS中 最近,我们开始面临数据问题,因为我们的同行开始使用CRM JS Fiddle等浏览器附加组件编辑/篡改只读字段,以启用字段 我们通过用户培训避免了这种情况&启用审计以查看用户行为。仍然有新加入者探索这一选择&迫使我们进行微观管理 我们是否可以采取一些防故障措施来永久避免此缺陷?好奇地想实现阻止篡改的最佳方法。欢迎提出意见 选项1:要使用预验证插件拦截请求,请跳过这些字段进行更新 选项2:将所有计算逻辑移动到服务器,或使用计算字段等Javascript 避免篡改CRM表单中的只读字段,javascript,dynamics-crm,Javascript,Dynamics Crm,我们在CRM中实现了一个内部项目管理/考勤模块,主要是在JS中 最近,我们开始面临数据问题,因为我们的同行开始使用CRM JS Fiddle等浏览器附加组件编辑/篡改只读字段,以启用字段 我们通过用户培训避免了这种情况&启用审计以查看用户行为。仍然有新加入者探索这一选择&迫使我们进行微观管理 我们是否可以采取一些防故障措施来永久避免此缺陷?好奇地想实现阻止篡改的最佳方法。欢迎提出意见 选项1:要使用预验证插件拦截请求,请跳过这些字段进行更新 选项2:将所有计算逻辑移动到服务器,或使用计算字段等
[我不知道它是否脱离主题,基于意见。仍然希望看到很少的响应]当试图计算、验证或保护CRM表单上的数据时,“肯定会出现问题 避免这种情况的一些选择是:
Xrm.Page.getAttribute("new_field").setSubmitMode("never");
我个人的结论和实践是,数据相关任务依赖插件和自定义工作流,而不是JavaScript和业务规则。这有一个有益的副作用,即如果我们导入数据而不是在表单上输入数据,逻辑也会起作用
如果可能的话,我会尝试只对表单布局任务使用JavaScript和业务规则
如果确实使用JavaScript在表单上显示用户即时计算结果,则可能需要在插件中复制逻辑
另一个想法(我自己没有做过)是在只读字段中添加onChange事件。该事件可以重新计算正确的值,从而挫败用户的努力
例如,假设您有3个字段:价格、数量和总额。
价格和数量可编辑,合计为只读
价格和数量发生变化时触发的正常计算是将价格*数量填充到总数中。好的,当全部更改时,您可以启动相同的计算,这将立即用正确的值覆盖任何用户输入。您可能无能为力,有些人甚至不需要表单或浏览器将数据发送到您的服务器,这就是为什么来自客户端的数据永远不可信!我想知道,如果企业开始探索浏览器工具栏之类的开发工具并覆盖UI数据,会怎么样。。我同意我们无能为力。。