linux学习第四十一篇:配置防盗链,访问控制Directory,访问控制FilesMatch

时间:2022-04-26
本文章向大家介绍linux学习第四十一篇:配置防盗链,访问控制Directory,访问控制FilesMatch,主要内容包括配置防盗链、访问控制Directory、访问控制FilesMatch、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

配置防盗链

防盗链,就是不让别人盗用你网站上的资源,这个资源,通常指的是图片,视频,歌曲,文档等。不是我们认识的referer一概不许访问。 防盗链的作用是,我们网站的图片,只能通过我们自己的网站去访问,其他网站借用不行。 我举的例子,意思是我们的网站,被用户上传了很多图片,而用户又在他自己的网站上加上了我们网站图片的链接,就直接能访问了。 这样可以节省他网站的带宽。

通过限制referer来实现防盗链的功能 配置文件增加如下内容

<Directory /data/wwwroot/111.com>
        SetEnvIfNoCase Referer "http://111.com" local_ref //设置referer的白名单
        SetEnvIfNoCase Referer "http://aaa.com" local_ref
        SetEnvIfNoCase Referer "^$" local_ref //空referer,可以直接访问网站的图片,
//如果没有这行,想要访问网站图片就需要通过上面的白名单referer去访问
        <filesmatch ".(txt|doc|mp3|zip|rar|jpg|gif)">
            Order Allow,Deny  //order用来定义顺序,是先allow还是先deny,如果先allow就先执行allow的语句,先deny就先执行deny的语句
            Allow from env=local_ref  
        </filesmatch>
    </Directory>

-e用来指定referer: curl -e “http://111.com/123.txt” 当我们用www.qq.com这个referer去访问111.com时候就会出现403则被限制访问了。 但是用http://111.com这个白名单referer去访问就可以正常访问 //referer要用http://

访问控制Directory

访问控制Directory,只允许设置的IP可以访问网站。 核心配置文件内容,编辑虚拟主机配置文件: /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<Directory /data/wwwroot/111.com/admin/>
        Order deny,allow //order用来定义顺序,是先allow还是先deny,如果先allow就先执行allow的语句,先deny就先执行deny的语句
        Deny from all
        Allow from 127.0.0.1 //只允许127.0.0.1这个IP可以访问
    </Directory>

记得在111.com目录下创建admin目录,在admin目录下编辑文件index.php,内容随便写。

curl测试状态码为403则被限制访问了,只有allow里的127.0.0.1可以访问。

访问控制FilesMatch

访问控制FilesMatch,只允许设置的IP可以访问网站里设置的admin.php(.*)的文件,其他没有allow的IP只能访问网站除了admin.php(.*)以外的文件。 核心配置文件内容

<Directory /data/wwwroot/111.com>
    <FilesMatch  "admin.php(.*)">
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    </FilesMatch>
</Directory>

curl测试状态码为403则被限制访问了 而127.0.0.1测试状态码为404说明可以访问,只是访问的东西不存在而已。

扩展 几种限制ip的方法 http://ask.apelearn.com/question/6519 apache 自定义header http://ask.apelearn.com/question/830 apache的keepalive和keepalivetimeout http://ask.apelearn.com/question/556