X-CSRF-Token

Odata服务HTTP测试总是出现烦人的 CSRF token validation failed

(for all modifying requests)忽略下图中的报文错误

怀疑是服务器参数的设置问题,临时应急的话可以先针对这个服务把CSRF校验关掉

SICF找到这个服务

增加一个参数

  • Modifying request的CSRF这样的工作的:
    1. 用一个非修改(non-modifying)的请求(GET)返回CSRF。首先发送GET请求时X-CSRF-Token参数值 指定为'Fetch',在成功返回的header里有参数 X-CSRF-Token
    2. 然后才是modifying 请求(POST),这里要带上第一步返回的X-CSRF-Token,这里如果validation不通过一样会返回403forbidden错误,失败的请求中是不会有有效的X-CSRF-Token的
    3. 如果X-CSRF-Token检验通过,正常的POST

 

  • 如果要禁用HTTP的话可以把login/ticket_only_by_https这个参数设为1,这个HTTP的任何请求都会返回403forbidden ‘CSRF token validation failed’下面这个服务器就是这么搞的,别问我为什么知道的
  •  

 

 

 参考 :https://help.sap.com/saphelp_gateway20sp12/helpdata/en/e6/cae27d5e8d4996add4067280c8714e/frameset.htm