【问题标题】:Spoof $_SERVER['HTTPS'] on local wamp-server for testing在本地 wamp-server 上欺骗 $_SERVER['HTTPS'] 以进行测试
【发布时间】:2011-06-02 14:17:17
【问题描述】:

是否可以配置我的本地设置(运行 Wampserver),以便我的 PHP 应用程序认为 HTTPS 在本地启用?该应用程序在执行操作之前需要 HTTPS(通过检查 $_SERVER['HTTPS']),但我不想在本地完成完整的 HTTPS 设置的麻烦。谢谢。

编辑:我应该提到这不是我编写的应用程序,只是我负责维护的应用程序。此检查在服务器周围的许多地方 (50-100) 执行。

【问题讨论】:

    标签: php ssl https wampserver


    【解决方案1】:

    你可以在你的初始化文件中模拟这个变量,添加:

    $_SERVER['HTTPS'] = true;
    

    【讨论】:

    • 在此检查之前,我确实发现几乎所有地方都包含一个文件,因此我能够在此处包含此语句。谢谢。
    【解决方案2】:

    不应该太难。即使它是一个超全局变量,您仍然可以像任何其他变量一样重新定义它。在代码的顶部执行此操作,当它进行检查时,它仍应将其识别为 true。

    $_SERVER['HTTPS'] = true;
    

    【讨论】:

      【解决方案3】:

      将支票移动到一个对象中

         class Request
         {
             function isHttps()
             {
                  // check for local site here,
                  // or better still, use a DevRequest class or a Mock to pass
                  // your local requirements
             }
      
         }
      

      然后使用

      if($request->isHttps()) {...} 
      

      【讨论】:

      • 如果我设计了这个系统,我会这样做。系统有点乱,检查是在整个系统中偶尔执行的。
      猜你喜欢
      • 2010-10-29
      • 1970-01-01
      • 2020-01-01
      • 1970-01-01
      • 2011-02-20
      • 2013-04-03
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      相关资源
      最近更新 更多