You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何保护Shopware预发布/测试环境?解决Basic Auth兼容问题

限制Shopware测试实例外部访问的可行方案

由于Shopware和Basic Auth兼容性极差,无法通过该方式限制访问,除了IP白名单外,还有这些实用方案:

  • Shopware内置维护模式+自定义验证
    开启Shopware的维护模式后,默认会拦截所有外部访问。你可以在config/packages/shopware.yaml中配置允许的IP,同时还能自定义维护页面,添加简单的密码验证逻辑(比如基于Session或Cookie),完全在Shopware生态内实现,兼容性拉满:

    shopware:
      maintenance:
        enabled: true
        allow_ip:
          - '192.168.1.0/24'
    

    要是需要密码验证,可自定义维护控制器,在渲染页面时检查POST提交的密码,验证通过后设置Cookie放行后续请求。

  • 反向代理层做Cookie验证(Nginx/Apache)
    用Nginx或Apache这类反向代理,设置只有携带指定Cookie的请求才能访问Shopware实例。比如Nginx的配置示例:

    server {
        listen 80;
        server_name your-test-shopware.com;
    
        if ($cookie_access_token != "your-secret-key") {
            return 403;
        }
    
        location / {
            proxy_pass http://localhost:8000;
            proxy_set_header Host $host;
        }
    }
    

    内部人员只需要在浏览器中手动添加这个Cookie,就能正常访问,外部无Cookie请求直接被拦截。

  • 入口文件添加简易验证
    在Shopware的public/index.php开头添加一段简单的验证逻辑,比如检查请求参数或自定义请求头:

    <?php
    // 检查自定义请求头
    if ($_SERVER['HTTP_X_ACCESS_KEY'] !== 'your-secure-key') {
        http_response_code(403);
        echo 'Access Denied';
        exit;
    }
    
    // 原index.php内容...
    

    访问时只要在请求头里带上X-Access-Key: your-secure-key,就能正常进入,外部不知道密钥的话根本无法访问。

  • 网络层面隔离
    直接把测试实例部署在内部局域网、VPN专属网段,或者通过云服务商的安全组只开放内部访问端口,从网络层面彻底阻断外部请求,这是最安全的方案,适合团队内部测试场景。

内容的提问来源于stack exchange,提问作者Fabian Blechschmidt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 22:25:34