UI5 Fiori-出于安全原因隐藏或屏蔽URL

2020-09-23 22:10发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


社区成员,我有一个场景,其中应用程序URL以以下格式传递给外部供应商,文档号作为URL参数。 我们已经为服务器/端口部分创建了代理,并且由网络和安全团队对其进行了安全保护和列入白名单。

https://PROXY.com #ZAPPLICATION-display?EmailLink = true&DocNo = 1234&/HeaderSet/1234

问题出在URL中的文档编号(DocNo,值为1234)。 外部方(供应商)可以操纵URL并将文档编号替换为其他值。

第一个问题:有没有办法可以避免这种情况? 这种情况下的最佳做法是什么?

我已经在后端oData层的HEADERSET_GET_ENTITYSET方法中验证了DocNo,并且如果外部供应商无权访问文档编号,则会出现错误。 但是由于我已经加载了该应用程序,而且我不知道如何将用户从后端系统中退出,因此我在游戏中为时已晚。 我们有一个前端FIORI网关集线器,后端ECC系统已连接到该集线器。

第二个问题:关于我应该在哪里验证以及如何验证的任何想法? 我只是在HEADERSET_GET_ENTITYSET方法中读取URL参数。 我应该以其他方式这样做吗?

感谢您的指导。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


社区成员,我有一个场景,其中应用程序URL以以下格式传递给外部供应商,文档号作为URL参数。 我们已经为服务器/端口部分创建了代理,并且由网络和安全团队对其进行了安全保护和列入白名单。

https://PROXY.com #ZAPPLICATION-display?EmailLink = true&DocNo = 1234&/HeaderSet/1234

问题出在URL中的文档编号(DocNo,值为1234)。 外部方(供应商)可以操纵URL并将文档编号替换为其他值。

第一个问题:有没有办法可以避免这种情况? 这种情况下的最佳做法是什么?

我已经在后端oData层的HEADERSET_GET_ENTITYSET方法中验证了DocNo,并且如果外部供应商无权访问文档编号,则会出现错误。 但是由于我已经加载了该应用程序,而且我不知道如何将用户从后端系统中退出,因此我在游戏中为时已晚。 我们有一个前端FIORI网关集线器,后端ECC系统已连接到该集线器。

第二个问题:关于我应该在哪里验证以及如何验证的任何想法? 我只是在HEADERSET_GET_ENTITYSET方法中读取URL参数。 我应该以其他方式这样做吗?

感谢您的指导。

付费偷看设置
发送
3条回答
SAP小菜
1楼-- · 2020-09-23 23:07

你好Ganesh,

首先,让我在假设这是一个自定义应用程序而不是标准SAP应用程序的前提下开始我的回答。

将文档编号作为URL哈希的一部分没有任何问题。 从开发和可用性的角度来看,这是完全合理的。 只要您正在验证后端中的文档编号(听起来好像已经),那么我认为您应该没问题。 我要提醒您的一件事是从后端返回的错误消息的性质。 由于缺少授权而导致的错误消息应始终在与不存在的文档编号相关的任何类型的错误消息之前返回。 您想确保攻击者不会滥用您的错误处理来枚举有效的文档编号。 只要您进行了适当的授权检查,就无需"将用户从后端系统中删除"。

最好的问候

Hunter Young

me_for_i
2楼-- · 2020-09-23 22:47

您无法(或应该)对前端JavaScript代码进行任何操作,以阻止供应商访问与另一供应商相关的文档-这应该由 您在后端提到的常规。 但是,您的例程应返回与授权失败相关的有意义的错误,可以由您的SAPUI5应用程序正确解析该错误。 对于OData绑定更新的失败条件,我将有一个回调:1)向最终用户显示错误的对话框或消息,然后2)在关闭对话框时触发navBack事件以返回到Fiori Launchpad主页,或者 带有错误的消息吐司。

空代码
3楼-- · 2020-09-23 22:52

谢谢猎人的指导。 现在正在工作。

一周热门 更多>