内容提要
在Dynamics 365 CE中,使用localStorage传递数据存在XSS攻击和数据持久化的安全风险。推荐使用formParameters、隐藏字段和URL参数进行跨表单导航,以更好地维护安全性和用户上下文。
关键要点
-
在Dynamics 365 CE中,使用localStorage传递数据存在安全风险,包括XSS攻击和数据持久化问题。
-
localStorage的缺点包括:全局作用域、缺乏安全性、不尊重表单/会话边界、数据清理不足。
-
推荐使用formParameters通过Xrm.Navigation.openForm进行安全的数据传递,保持数据作用于表单会话。
-
可以使用隐藏字段在相关记录之间临时存储值,支持Dynamics CE的工作流和审计功能。
-
在手动构建URL的情况下,可以通过URL参数进行跨表单导航,但不推荐,除非必要。
-
结论是,localStorage不适合Dynamics 365 CE,建议使用内置方法如formParameters或隐藏字段以维护安全性和用户上下文。
延伸解读
localStorage的安全隐患
在Dynamics 365 CE中,使用localStorage传递数据存在严重的安全隐患,尤其是XSS攻击的风险。由于localStorage是全局作用域的,任何用户都可以访问其中的数据,这使得敏感信息容易被恶意脚本窃取。因此,开发者应谨慎使用localStorage,避免在应用中存储重要数据。
推荐的安全替代方案
文章建议使用formParameters和隐藏字段作为localStorage的替代方案。这些方法不仅能确保数据在表单会话内有效,还能避免数据污染和安全风险。特别是在涉及工作流和审计功能时,使用隐藏字段可以更好地维护数据的完整性和安全性。
跨表单导航的注意事项
在进行跨表单导航时,虽然可以使用URL参数,但文章提醒这并非最佳实践。手动构建URL可能导致数据泄露或逻辑错误,建议仅在必要时使用。开发者应优先考虑使用formParameters,以确保数据传递的安全性和有效性。
延伸问答
在Dynamics 365 CE中使用localStorage有哪些安全风险?
使用localStorage存在XSS攻击和数据持久化的安全风险,数据可被浏览器开发工具读取。
如何在Dynamics 365 CE中安全地传递数据?
推荐使用formParameters和隐藏字段进行数据传递,以保持数据作用于表单会话。
为什么不建议在Dynamics 365 CE中使用URL参数进行跨表单导航?
手动构建URL的方式不推荐,除非必要,因为它可能导致安全性和数据管理问题。
localStorage在Dynamics 365 CE中的缺点是什么?
localStorage的缺点包括全局作用域、不安全、不尊重表单边界和数据清理不足。
如何使用隐藏字段在Dynamics 365 CE中存储值?
可以通过插件或表单逻辑预填充隐藏字段,并在下一个表单中使用getAttribute().getValue()方法检索值。
在Dynamics 365 CE中,formParameters的使用方法是什么?
使用Xrm.Navigation.openForm方法传递formParameters,可以将数据作用于特定表单会话。