CSRF令牌验证失败-403禁止通过PUT调用Hybris API_MKT_CONTACT_SRV

2020-09-18 01:48发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)人们好, 我有一个通过C...

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

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


人们好,

我有一个通过CAL设置的Hybris系统1709。 没有填充与Hybris相关的数据。 所以我试图创建一个联系人。

我正在使用API​​_MKT_CONTACT_SRV服务。

我正在使用标题中的X-csrf-token = fetch进行获取。

然后,我使用返回的x-csrf令牌使用PUT发布联系人:

http://myIP:myPort/sap/opu/odata/sap/API_MKT_CONTACT_SRV; v = 0002/联系人

这里是我正在使用的JSON,来自如何通过约翰内斯·赫林

 {
 " batchParts":{
 " batchChangeSet":{
 " batchChangeSetPart":{
 " method":" PUT",
 " ContactOriginData":{
 " ContactOriginData":{
 " LastName":" Test",
 " FirstName":" Tom",
 " EmailAddress":" JHI_001@test.com",
 " Country":" US",
 " ContactPostalCode":" 60611",
 " ContactOrigin":" SAP_ERP_CONTACT",
 " ContactID":" JHI_001",
 " CityName":"芝加哥",
 "出生日期":" 2000-12-13",
 " OriginDataLastChgUTCDateTime":" 0000-00-00T00:00:00"
 }
 }
 }
 }
 }
 }
 

我在这里传递了x-csrf令牌

响应头:

任何帮助将不胜感激。

谢谢

周杰伦

(91.3 kB)
2条回答
派大星 ヾ
2020-09-18 02:32

遇到此问题的任何人,请确保已在SAP系统上正确完成SSL设置。 默认情况下,您需要使用HTTPS才能使用x-csrf-token功能。 因此,您需要在客户端证书存储区中安装服务器证书。

如果要在不使用HTTPS和csrf令牌的情况下测试功能,只需在SICF中使用该服务,然后将〜CHECK_CSRF_TOKEN设置为0。


请查看SAP note摘录-1896961-SAP NetWeaver Gateway的HTTP/HTTPS配置

使用HTTP

 使用HTTP时CSRF令牌处理的必要设置

 为了保护跨站点请求伪造攻击(CSRF或XSRF),SAP NW Gateway还支持CSRF令牌处理,并在OData使用者(HTTP/HTTPS客户端)要求时返回CSRF令牌。 另一方面,此CRSF令牌也必须受到保护。 因此,默认情况下,仅在使用HTTPS时才发送此令牌。 默认设置:实例配置文件参数" login/ticket_only_by_https"设置为1。使用HTTP时,必须要求系统管理员将实例配置文件参数" login/ticket_only_by_https"设置为0。否则,SAP NW Gateway集线器系统会 不提供CSRF令牌,并且由于无效的CSRF令牌,下一个修改操作(如POST,PUT,MERGE或DELETE)将以HTTP状态代码403终止。

 确保此设置仅适用于内部测试系统,因为它存在很高的安全风险!

 停用"将HTTP重定向到HTTPS"以使用HTTP

 通常,如果出于安全原因将SAP NW Gateway集线器系统配置为支持SSL,则系统管理员还将其配置为自动将所有HTTP请求重定向到HTTPS,以完全保护系统。 重定向设置由实例配置文件参数" icm/HTTP/redirect_xx"完成。 如果要使用HTTP进行测试,则必须要求系统管理员删除此重定向设置。

 如上所述,请不要忘记将实例配置文件参数" login/ticket_only_by_https"设置为0。
 

此致

Jay

一周热门 更多>