AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 829955
Accepted
Mikhail T.
Mikhail T.
Asked: 2017-02-02 10:00:42 +0800 CST2017-02-02 10:00:42 +0800 CST 2017-02-02 10:00:42 +0800 CST

如何告诉 Apache 回复 403 而不是 401?

  • 772

我们对 s 的子树有一些规则Location,包括Require-ingldap-group和expr-s。

用户受到适当的挑战,以提供经过验证的登录凭据。

但是,即使凭据正确并且由于其他原因(例如属于错误的组或来自不正确的 IP 地址)而拒绝访问,服务器的响应始终是 401,而不是 403。

结果,浏览器不断提示用户“再试一次”......我可以告诉 Apache(2.4)使用 403,如果Authorization-header 中提供的信息签出,并且它是其他一些规则,拒绝要求?

再次,我知道,为什么在身份验证成功后,某些用户的授权被拒绝 - 它应该是。我只需要与这些用户沟通,即:“是的,我们相信你就是你所说的那个人,但你不被允许访问这个位置。”

看来,mod_rewrite 是引发 403 响应的唯一方法—— mod_rewrite 表达式是否可以检查 LDAP 组的成员资格或强制将状态从 401 更改为 403?

我在WebMaster 的网站上问过这个问题,但没有得到答案——那里的人似乎更注重内容。

这是我当前配置的相关片段:

<Location /foo>
         Require ldap-group CN=foo,OU=Groups,DC=example,DC=net
</Location>

当验证提供的用户名/密码,但不满足要求时,我需要返回 403... 401 当前正在返回。

mod-rewrite apache-2.4 http-status-code-403 authorization
  • 1 1 个回答
  • 1367 Views

1 个回答

  • Voted
  1. Best Answer
    Dan Lowe
    2017-02-02T10:08:24+08:002017-02-02T10:08:24+08:00

    我认为您想要的是AuthzSendForbiddenOnFailure:

    AuthzSendForbiddenOnFailure On
    

    上下文:目录,.htaccess

    如果身份验证成功但授权失败,Apache HTTPD 将默认以“401 UNAUTHORIZED”的 HTTP 响应代码进行响应。这通常会导致浏览器再次向用户显示密码对话,这并不是在所有情况下都需要的。AuthzSendForbiddenOnFailure 允许将响应代码更改为“403 FORBIDDEN”。

    请注意,它带有安全警告:

    安全警告

    在缺少授权的情况下修改响应会削弱密码的安全性,因为它向可能的攻击者揭示了他猜到的密码是正确的。

    • 3

相关问题

  • 在 mod_rewrite 重写条件下设置 Apache 环境变量

  • .htaccess 不工作(mod_rewrite)

  • 在 CentOS + Apache 中启用漂亮的网址/永久链接

  • Apache 重写规则 - 删除 URL 中的“/”

  • mod_rewrite 不转发 GET 参数

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve