代码之家  ›  专栏  ›  技术社区  ›  Designer023

$\u服务器变量被放到运行CGI的主机上

  •  2
  • Designer023  · 技术社区  · 15 年前

    变量$\u SERVER['PHP\u AUTH\u USER']和$\u SERVER['PHP\u AUTH\u PW']返回为空,因为我的主机设置(在CGI接口上运行)。有没有什么办法让他们工作,因为我需要使用他们的身份验证。我无法移动主机或更改界面。

    我正在通过curl向url/api/projects/发送身份验证请求。。。 它由modrewrite解释,然后根据规则进行处理。

    有人能帮我吗?

    5 回复  |  直到 15 年前
        1
  •  2
  •   Andrei Serdeliuc ॐ    15 年前

    http://php.net/manual/en/features.http-auth.php

    你可以试着和你的主机提供商谈谈,看看他们是否能在CGI发出请求时提供给你。

        2
  •  1
  •   Pekka    15 年前

    docs ,这两个变量在CGI模式下不可用。

    PHP中的HTTP身份验证挂钩仅在作为Apache模块运行时可用,因此在CGI版本中不可用。

    this one . 也许值得一看。

        3
  •  0
  •   Your Common Sense    15 年前

    http://example.com/service.php?auth=A235BDA74456CC3
    
        4
  •  0
  •   bobince    15 年前

    Apache web服务器阻止 HTTP_AUTHORIZATION PHP_AUTH_USER / PASS SECURITY_HOLE_PASS_AUTHORIZATION 标志设置。

    你知道有没有可能使用类似于这里的工作环境

    是的,应该可以,如果你有 mod_rewrite

    然而,它是丑陋的,并且使部署复杂化。另外,给出的示例脚本也有一些问题(使用 explode 丢弃任何 : echo 没有正确使用 htmlspecialchars() 引入XSS漏洞。)

    这种无稽之谈是HTTP认证越来越不受欢迎的原因之一。大多数站点部署基于表单/cookie的身份验证。对于API,您通常会拥有自己的基于令牌的身份验证,而不是依赖于基本身份验证。

        5
  •  0
  •   Mauritz Hansen    14 年前

    退房

    https://github.com/symfony/symfony/issues/1813

    有关此问题的讨论和详细的解决方法。

    推荐文章