zoukankan      html  css  js  c++  java
  • 关于Apacheserver的訪问控制

    Apache的訪问控制指对不论什么资源的不论什么方式的訪问控制。

    一、基于主机或者IP地址的控制

    这样的訪问控制基于訪问者的主机名或者IP地址,通过使用 Deny 和 Allow 指令。实现同意或者禁止某个主机訪问我们的server资源。通常 Order 指令也会一起使用。来定义 Deny 和 Allows 指令起作用的顺序。假设不使用 Order 指令,默认的顺序为 Deny, Allow, 就相当于 Order Deny,Allow。

    Order 指令和 Allow。Deny 指令配合使用。实现了一个三步控制系统。

    第一步:依据Order的顺序。将顺序在前的全部的Allow指令或者Deny指令应用于当前请求;也就是说假设是 Order allow,deny 。那么第一步就是将全部的Allow指令应用于当前訪问。假设有匹配。那么就同意该訪问;假设沒有匹配到一条Allow指令,那么就禁止其訪问。

    第二步:将剩下的另外一个指令的全部语句跟当前请求匹配。假设有匹配就运行对应的訪问控制。

    第三步:假设当前请求没有在前两步匹配到不论什么指令,就运行 Order 指令中后面的那个指令。

    以下,通过一个样例理解一下:

    使指定文件夹下的资源仅仅让本地訪问

        <Directory "/server">
            Order allow,deny
            Allow from 127.0.0.1
        </Directory>
    
    第一步: 本地的訪问匹配了 Allow from 127.0.0.1 这条指令,所以被同意;其它的主机没有匹配到不论什么一条Allow指令,所以被禁止訪问。

    第二步:全部訪问都没有匹配到 Deny 指令;

    第三步:没有匹配到不论什么指令的訪问,也就是不是本地的訪问,依照 Order 指令,运行后面的 deny 的指令,所以被禁止訪问;

    二、依据环境变量的訪问控制

    这样的方式能够通过 Allow from env= 或者 Deny from env= 语法实现。比方仅仅同意使用火狐浏览器的客户訪问:

        <Directory "/server">
            SetEnvIf User-Agent "Firefox" ff=1
            Order allow,deny
            Allow from env=ff
        </Directory>

    三、使用 mod_rewrite 实现訪问控制

    通过 mod_rewrite 指令的 [F] 标志,能够基于不论什么的标准对一个资源实现訪问控制。

    比方,我希望早八点到晚六点的时候才干訪问不论什么资源,我就能够这样:

    RewriteEngine On
    RewriteCond %{TIME_HOUR} >20 [OR]
    RewriteCond %{TIME_HOUR} <07
    RewriteRule ^/fridge - [F] 

    这种话。晚上八点以后到早上7点,都会返回 403

  • 相关阅读:
    PHP7革新与性能优化
    git团队开发
    PHP获取机器mac代码
    js复制文字
    jquery datatable客户端分页保持
    自已编写C# DLL 绑定到unity进程进行单步调试
    ‘xxfile' Missing the class attribute 'ExtensionOfNativeClass'
    关于热更的杂记
    关于unityengine.dll, unityengine.coremodule.dll
    学到了关于服务器磁盘阵列
  • 原文地址:https://www.cnblogs.com/mthoutai/p/6860662.html
Copyright © 2011-2022 走看看