背景:

WEB服务在公司内部服务器上,使用nginx做透明代理,OA区访问发现WEB服务返回No XSRF Header;

在服务器内部本地curl 不过nignx发现可以:

CSRF的一般防护策略:

1、限制referer请求来源

2、增加字段token验证

这次的WEB服务使用的在headers增加了在token进行验证。

 

原因:

问题原因在于nginx默认会忽略掉headers中_线标识符字段头

 

解决:

知道问题就简单了:

方法一:不用下划线
把下划线_改成其他的,如sign_val改成sign-val

方法二:nginx增加配置项

nginx默认request的header的那么中包含’_’时,会自动忽略掉。
在nginx里的nginx.conf配置文件中的http部分中添加如下配置:
underscores_in_headers on; (默认 underscores_in_headers 为off)

增加nginx配置后。reload重新访问生效。

 

参考信息:

https://blog.csdn.net/shidebin/article/details/86133762

相关文章:

  • 2021-11-30
  • 2022-12-23
  • 2022-12-23
  • 2021-04-07
  • 2021-12-28
  • 2021-07-22
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-09-11
  • 2022-03-06
  • 2022-12-23
  • 2021-05-25
  • 2022-01-10
相关资源
相似解决方案