centOS 上不应该出现 CSRF 警告

centOS 上不应该出现 CSRF 警告

我正在使用单独的 Vue.js Front 在 laravel 中开发自己的 ERP。有一段时间,我在装有 apache 的 Windows 服务器上工作,它运行良好。一开始设置有点棘手,因为我没有从 apache 运行 vue,而是使用 npm run dev,因此使用它自己的开发服务器。我能够构建它并在从端口 80 提供服务时对其进行测试。

到目前为止,一切都很好。

我想按照流程进行操作并为生产进行示例安装,然后将所有内容迁移到 centOS,在这里我在前端遇到了 CSRF 警告。

如果你想知道的话,我已经在 Windows 设备上启用了 cors 标头,但我不需要设置任何其他内容,如下所示:

标头设置 Access-Control-Allow-Origin“*”

在我的目录设置中,当您遇到 CSRF 预检问题时,通常会在这里提供建议。

这是我在 centOS 中遇到但在 Windows 中不会遇到的错误:

访问 XMLHttpRequest 'http://192.168.2.100:8029/api/oauth/获取令牌' 来自起源 'http://192.168.2.100' 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:'Access-Control-Allow-Origin' 标头包含多个值 '*,http://192.168.2.100',但只允许一个。

PS 我在 apache 提供的 8029 端口上提供 laravel。我正在监听 80 和 8029 端口(vue 前端和 laravel 后端)

这是虚拟主机文件:

<VirtualHost *:8029>
    ServerAdmin emailhere
    DocumentRoot "/var/www/html/backendpathhere/"
    ServerName webservices7.zeintek.com
    ServerAlias www.webservices7.zeintek.com
  <Directory "/var/www/html/backendpathhere/">
    AddHandler cgi-script .cgi .pl .py 
    Options Indexes Includes FollowSymLinks ExecCGI
    AllowOverride All 
    Order Allow,Deny
    Allow From All 
   </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin emailhere
    DocumentRoot "/var/www/html/frontendpathhere/"
  <Directory "/var/www/html/frontendpathhere/">
    AddHandler cgi-script .cgi .pl .py 
    Options Indexes Includes FollowSymLinks ExecCGI
    Options +ExecCGI
    AllowOverride All 
    Order Allow,Deny
    Allow From All
   </Directory>
</VirtualHost>

答案1

当我完成此操作时,我已经在自己的 Apache 处理程序(用 Perl 编写)中对响应进行了编码,因此我不清楚它在 Apache 中是如何设置的,而且我无法在您的配置文件中看到它。我看到您已启用 .pl .py 和 .cgi,因此您可能有自己的代码参与响应飞行前请求。

响应预检请求的是什么?这就是生成无效响应的部分。

检查请求和响应(浏览器开发人员工具中的网络查看器)并与 RFC 交叉引用。不同的服务器配置将具有不同的选项,因此,如果您使用 Apache 配置,请确保您已了解如何正确设置选项。

当我完成这项工作时,我花了一点时间来了解我们将如何构建交叉引用域数据模型,但我不记得让代码运行起来特别困难。

答案2

非常抱歉。我有一个特定于每个服务器部署的 backendurls 文件,但我访问到了错误的端点。我的 Linux 服务器访问的是 Windows 开发服务器。

写出来实际上帮助我解决了这个问题。

相关内容