在 nginx 中为 403 禁止或 405 不允许响应返回 200 状态代码是否安全

问题描述 投票:0回答:1

我正在为我的应用程序使用 React js。

在 Fortify Web 检查扫描期间,我遇到了一些与缺少 http 标头相关的问题。 请注意,我已经应用了必要的标头。

现在,在详细描述这些问题时,他们提到,当收到 403 Forbidden 或 405 Not allowed Nginx 响应时,http 标头不存在。

对于前。 Web 检查试图攻击像 www.xyz.com/static/

这里的static文件夹是包含js和css文件夹的文件夹,用来保存bundle文件。 (参考build文件夹)

当我们尝试通过浏览器或邮递员访问此静态文件夹时,它将从 nginx 服务器返回 403 响应。

因此,与此 Web 检查相同,它将尝试通过访问静态文件夹进行攻击,它会收到 403 Forbidden,这是 Nginx 响应,并且由于标头未应用于它。因此,它作为一个问题再次出现。

405 响应也是如此,Web 检查正在尝试使用 OPTIONS 方法访问类似 www.xyz.com/ 的内容,作为回报,它会得到 405 Nginx 响应,该响应没有应用 http 标头。因此,它再次成为一个问题。

为了解决这个问题,我在 nginx.config 文件中应用了以下代码,

.....
server {

add_header X-Frame-Options "SAMEORIGIN"
add_headed Pragma "no-cache";
......

error_page 403 =200 @custom_403

location @custom_403 {
 return 200 "
  <html>
   <body>
     403 Forbidden
   <body>
  </html>  
 ";
}

error_page 405 =200 @custom_405

location @custom_405 {
 return 200 "
  <html>
   <body>
     405 Not Allowed
   <body>
  </html>  
 ";
}

使用上面的代码,所有问题都已解决,但我只是想检查一下安全性是否安全?

或者是否有其他方法可以在响应上设置 http 标头,例如 403 和 405(这是默认的 nginx 响应)。

提前致谢。

reactjs security nginx nginx-config fortify
1个回答
0
投票

更合适的方法是在

always
指令上使用
add_header
标志:

add_header X-Frame-Options "SAMEORIGIN" always;

参考:https://nginx.org/en/docs/http/ngx_http_headers_module.html

© www.soinside.com 2019 - 2024. All rights reserved.