nginx代理WEB服务效验CSRF Headers失败

背景:

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

【版权所有@Sevck 博客地址http://www.cnblogs.com/sevck】 可以转载,注明出处.
原文地址:https://www.cnblogs.com/sevck/p/14609644.html