我可以忽略这个热点安全警报吗?

问题描述

我正在尝试声纳云。

在这里分析了这个项目:https://sonarcloud.io/dashboard?id=dominique-bureau_classified_ads

这是一个 PHP 项目(使用 Laravel 框架)。如您所见,有一个“安全热点”。关于“config/cors.PHP文件

'paths' => ['api/*','sanctum/csrf-cookie'],'allowed_methods' => ['*'],'allowed_origins' => ['*'],'allowed_origins_patterns' => [],'allowed_headers' => ['*'],'exposed_headers' => [],'max_age' => 0,'supports_credentials' => false,

由于我根本不是专家,我想知道我是否可以忽略此警报。或者相反,特别不!

解决方法

老实说,我对 SonarCloud 并不熟悉,但正如我从 here 看到的,

下有一个通配符
'allowed_origins' => ['*'],

这意味着系统会提醒您稍后(在生产部署之前)修复/更改它。 实际上这不是一个安全问题(在代码片段下有关于这个问题的解释,有 3 个标签:“有什么风险?”、“你有风险吗?”、“你如何修复它?”)。

如果您的代码是公开的,并且您不想在代码中发布您的实际域/主机,那么您现在可以保留它,或者为您的本地主机设置它。 这些方式可能会隐藏安全警报

'allowed_origins' => [ 'http://localhost:8080' ],# or your specific virtual host for your case,like "http://example.site"

但对于生产,您也可以通过某种方式对其进行限制,例如

'allowed_origins' => [ 'https://example.com' ],

或者您可以在该数组中同时拥有两者:

'allowed_origins' => ['http://localhost:8080','https://example.com'],

"allowed_origins" 表示允许访问资源的"origins"(这里的origin 是指URL 的scheme、domain 和port 的组合)。它还允许通配符匹配(例如 *example.com 将允许 example.com 及其任何子域访问资源)。默认设置为允许所有来源。换句话说,此选项指定应允许来自哪些源请求。 不使用通配符时,必须完整指定来源(例如 http://example.com 有效,example.com 无效)。

欲了解更多信息,请阅读:Restricting Allowed HostsStackoverflow answer