我已经开始使用Laravel建立一个电子商务网站,现在当我开始构建支付处理页面时,我开始变得更加关注事物的安全性。
我偶然发现了一堆我失踪的标题,并决定添加正确的标题。我使用名为“Secure”的中间件为我的所有链接添加了标题:
public function handle($request, Closure $next)
{
$response = $next($request);
$response->withHeaders([
'X-Frame-Options' => 'DENY',
'X-XSS-Protection' => '1; mode=block',
'X-Permitted-Cross-Domain-Policies' => 'master-only',
'X-Content-Type-Options' => 'nosniff',
'Referrer-Policy' => 'no-referrer-when-downgrade',
'Strict-Transport-Security' => 'max-age=31536000; includeSubDomains',
'Cache-Control' => 'no-cache, no-store, must-revalidate, post-check=0, pre-check=0',
'Pragma' => 'no-cache',
'Expires' => 'Sat, 26 Jul 1997 05:00:00 GMT',
]);
return $response;
}
然后我只在web.php文件中将这些标题的所有链接路由到组。现在所有其他标题都显示出来了:
HTTP/1.1 200 OK
date: Mon, 20 Feb 2017 01:58:50 GMT
server: Apache/2.4.7 (Ubuntu)
cache-control: must-revalidate, no-cache, no-store, post-check=0, pre-check=0, private
x-xss-protection: 1; mode=block
x-permitted-cross-domain-policies: master-only
x-content-type-options: nosniff
referrer-policy: no-referrer-when-downgrade
strict-transport-security: max-age=31536000; includeSubDomains
pragma: no-cache
expires: Sat, 26 Jul 1997 05:00:00 GMT
这是标题响应的一部分,并且没有响应包含X-Frame-Options,但包括其他响应。即使我将我的网站放在像securityheaders.io这样的标题扫描网站上,他们也会将其检测为丢失的标题。我想知道我能做些什么来解决这个问题,或者它是否是一个问题?
我应该提到我已经尝试过使用php header()函数来获得类似的结果。也许正在删除X-Frame-Options标题?