Apache 相关设置

2018-12-06  本文已影响0人  fangfc

1. 防盗链设置

1.1 通过 SetEnvNoCase 和 access 实现

# 对访问站点的目录进行设置.
<Directory /data/xxx>
    # 定义白名单, 
        # SetEnvIfNoCase 和SetEnvIf 语义相同, 区别在于不会区分大小写
        # 用于 根据请求的属 设置性环境变量, 
    SetEnvIfNoCase Referer "http://123.com" local_ref
    SetEnvIfNocase Referer "http://abc.com" local_ref
    # 匹配指定文件的指令
    <FilesMatch "\.(txt|jpg|jpeg|zip|rar|gif|png)">
        # 只允许指定服务器可以访问该资源
        Order Allow, Deny
        Allow from env=local_ref
    </FilesMatch>
</Directory>

1.2 使用rewrite

RewriteEngine On
# RewriteCond 定义了规则发生条件, 写在 RewriteRule 规则前面, 通过 referer 变量, 判断图片资源是否合法.
RewriteCond %{HTTP_REFERER} !^http://123.net/.*$  [NC]
RewriteCond %{HTTP_REFERER} !^http://www.123.net/.*$  [NC]
# 用于阻止返回的图片
RewriteRule .*\.(gif|jpg|png)$ http://123.com/img/error.jpgs [R,NC]


2. 访问控制

2.1 主机访问控制

require hsot address
    # address 限制必须是域名(或部分域名), 如果需要, 可以提供多个地址或域名
require ip ip.address
    # ip.address 是一个IP地址, 网络/网络掩码
-----例如
<RequireAll>
    Require all granted
    Require not ip 1.1.1.1
</RequireAll>
    # 表示地址(1.1.1.1) 的访客无法看到该指令涵盖的内容, 相反, 如果拥有的机器名, 而不是地址, 则应当使用功能 Require not host host.com

2.2 Order 控制

# 允许所有的访问进入
Order Deny,Allow
Allow from All

# 拒绝所有的访问进入
Order Allow,Deny
Deny from All

# 拒绝部分IP, 其余全部开放
Order Deny,Allow
Deny from ip1 ip2

# 允许部分IP进入, 拒绝剩下的所有
Order Allow,Deny
Allow from ip1 ip2
# 该配置允许所有连接, 应为 Order deny,allow中 allow 是后一个配置, 所以覆盖 deny配置
Order deny,Allow
Allow from all
Deny from ip1

# 会拒绝所有连接, 应为 Order Allow,Deny 中 deny 是后一项配置, 会覆盖 前一项配置
Order Allow,Deny
Allow from ip1
Deny from all

2.3 FileMatch 正则

<FileMatch ".*\.(gif|jpg|png)$">
    # 相关操作
    # 例如 访问控制
    Order Deny,Allow
    Deny from 192.168.10.10
    Allow from all
</FileMatch>

4. apache 中设置PHP 相关值

php_admin_flag engine off
    # 用于关闭php 解析.

5. User_Agent

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR]
    RewriteCond %{HTTP_USE_AGENT} .*chrome.* [NC]
    Rewrite .* - [F]
</IfModule>

END

上一篇 下一篇

猜你喜欢

热点阅读