美文网首页
Apache Access Control(translate)

Apache Access Control(translate)

作者: 御浅永夜 | 来源:发表于2017-04-20 20:04 被阅读0次

    相关模块和指令

    访问控制可以由几个不同的模块完成。 其中最重要的是mod_authz_coremod_authz_host。 本文还讨论了使用mod_rewrite的访问控制。

    主机访问控制

    如果您希望根据访问者的主机地址限制访问您网站的部分内容,那么使用mod_authz_host完成访问最容易。

    “Require”提供了多种不同的方式来允许或拒绝访问资源。 结合RequireAllRequireAnyRequireNone指令,这些要求可以以任意复杂的方式组合,以执行您的访问策略所发生的任何事情。

    mod_access_compat提供的“Allow”,“Deny”和“Order”指令已被弃用,并将在以后的版本中消失。 你应该避免使用它们,并避免推荐使用过时的教程。

    这些指令的用法是:

    Require host address
    Require ip ip.address```
    在第一种形式中,***address***是一个完全限定域名(或部分域名); 如果需要,您可以提供多个地址或域名。
    
    在第二种形式中,***ip.address***是IP地址,部分IP地址,网络/网络掩码对或网络/ nnn CIDR规范。 可以使用IPv4或IPv6地址。
    有关此语法的进一步示例,请参阅[mod_authz_host文档](https://httpd.apache.org/docs/2.4/en/mod/mod_authz_host.html#requiredirectives)。
    
    您可以插入not来否定特定要求。 请注意,由于not是值的否定,它本身不能用于允许或拒绝请求,就像not
     true不等于false。 因此,要拒绝使用否定的访问,块必须具有一个评估为true或false的元素。 例如,如果您有某人垃圾邮件您的留言板,并且您想要保留他们,您可以执行以下操作:
    

    <RequireAll>
    Require all granted
    Require not ip 10.252.46.165
    </RequireAll>```
    来自该地址(10.252.46.165)的访问者将无法看到本指令涵盖的内容。 如果相反,您有机器名称,而不是IP地址,您可以使用它。

    Require not host host.example.com```
    而且,如果您想阻止整个域的访问,您只能指定地址或域名的一部分:
    

    Require not ip 192.168.205
    Require not host phishers.example.com moreidiots.example
    Require not host gov```
    可以使用RequireAll,RequireAny和RequireNone指令来执行更复杂的需求集。

    任意变量访问控制

    [F] RewriteRule标志会导致403 Forbidden响应被发送。 使用它,您可以根据任意条件拒绝对资源的访问。

    例如,如果您希望在晚上8点至6点之间阻止访问资源,可以使用mod_rewrite进行访问。

    RewriteEngine On
    RewriteCond "%{TIME_HOUR}" ">=20" [OR]
    RewriteCond "%{TIME_HOUR}" "<07"
    RewriteRule "^/fridge"     "-" [F]```
    这将在晚上8点或上午7点之前返回403 Forbidden回应。 该技术可用于您希望检查的任何标准。 如果该方法是首选,您还可以重定向或以其他方式重写这些请求。
    
    2.4中添加的<If>指令代替了mod_rewrite传统上习惯做的许多事情,您应该在使用mod_rewrite之前先看看。
    ##More information
    [expression engine](https://httpd.apache.org/docs/2.4/en/expr.html)为您提供了大量基于任意服务器变量执行各种功能的功能,您应该查阅该文档以获取更多详细信息。
    
    此外,您应该阅读[mod_authz_core](https://httpd.apache.org/docs/2.4/en/mod/mod_authz_core.html)文档,了解组合多个访问需求并指定它们如何交互的示例。
    
    另见[Authentication and Authorization](https://httpd.apache.org/docs/2.4/en/howto/auth.html) howto。

    相关文章

      网友评论

          本文标题:Apache Access Control(translate)

          本文链接:https://www.haomeiwen.com/subject/hqalzttx.html