Laravel 8接收第三方Webhook时自定义HTTP头丢失问题排查求助
问题:第三方Webhook自定义请求头丢失,无法获取
我使用第三方服务提供的Webhook,当系统资源发生变更时,该服务会向指定URL发送POST请求。出于安全考虑,请求应包含自定义请求头X_SOLVE360_HMAC_SHA256,这个头提供加密令牌用于请求认证(替代CSRF令牌)。
但目前遇到的问题是,收到的请求中缺失该自定义头。使用Laravel v8的$request->header()方法(应返回所有请求头)未找到所需自定义头,实际上所有自定义头都缺失。尝试原生PHP的getallheaders()或apache_request_headers()函数,结果一致,仅能获取标准请求头:Host、Content-Length、Accept-encoding、User-Agent、Content-Type,$_SERVER全局变量中也无目标头。
怀疑是否存在PHP或Apache配置过滤非标准请求头?应用部署在Dreamhost的VPS上,PHP版本为7.4。
求任何建议或排查线索。
补充说明
通过本地电脑使用Postman向服务器发送带有相同请求头的POST请求时,一切正常。当前的.htaccess配置如下:
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On # ensure HTTPS before laravel RewriteCond %{HTTPS} !=on RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # Send Requests To Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>
内容的提问来源于stack exchange,提问作者Stefano
相关产品推荐
相关产品推荐

