linux学习第四十一篇:配置防盗链,访问控制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>

linux学习第四十一篇:配置防盗链,访问控制Directory,访问控制FilesMatch_第1张图片

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

linux学习第四十一篇:配置防盗链,访问控制Directory,访问控制FilesMatch_第2张图片

访问控制Directory

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


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

linux学习第四十一篇:配置防盗链,访问控制Directory,访问控制FilesMatch_第3张图片

记得在111.com目录下创建admin目录,在admin目录下编辑文件index.php,内容随便写。
linux学习第四十一篇:配置防盗链,访问控制Directory,访问控制FilesMatch_第4张图片

curl测试状态码为403则被限制访问了,只有allow里的127.0.0.1可以访问。
linux学习第四十一篇:配置防盗链,访问控制Directory,访问控制FilesMatch_第5张图片
linux学习第四十一篇:配置防盗链,访问控制Directory,访问控制FilesMatch_第6张图片

访问控制FilesMatch

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


    
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    

linux学习第四十一篇:配置防盗链,访问控制Directory,访问控制FilesMatch_第7张图片

curl测试状态码为403则被限制访问了
而127.0.0.1测试状态码为404说明可以访问,只是访问的东西不存在而已。
linux学习第四十一篇:配置防盗链,访问控制Directory,访问控制FilesMatch_第8张图片

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

你可能感兴趣的:(LAMP)