LAMP架构(配置防盗链,目录访问控制,文件/链接访问控制)

本文涉及的产品
访问控制,不限时长
简介:

一、配置防盗链

实例:

假如你维护一个免费的论坛网站,是可以免费发图片的,有一个国外的恶意网站,把图片发在你的网站里,且在自己的网站里放入他在你网站发图的链接,这样在他的网站里就可以直接跳转到你的网站来访问图片,这样增加了自己网站的带宽,但是没有实质意义,因为自己的用户量并没有增长,怎么限制这种行为呢,是通过限制Referer(上一次访问的网站)来实现。


修改虚拟配置文件;

[root@abc 111.com]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 

增加以下内容

<Directory /data/wwwroot/111.com>               (需要定义防盗链的目录)

        SetEnvIfNoCase Referer "http://111.com" local_ref      referer白名单

        SetEnvIfNoCase Referer "http://ask.apelearn.com" local_ref        

        SetEnvIfNoCase Referer "^$" local_ref              空referer也设置白名单

        <FilesMatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">        这些访问不要设置白名单

            Order Allow,Deny                        定义顺序,先允许白名单访问,剩下的给deny掉

            Allow from env=local_ref                   

        </FilesMatch>

    </Directory>

检查语法错误且重新启动


[root@abc 111.com]# curl -e "http:www.qq.com/1.txt"-x127.0.0.1:80 111.com/1.png  -I

HTTP/1.1 403 Forbidden

Date: Sun, 26 Nov 2017 08:50:30 GMT

Server: Apache/2.4.28 (Unix) PHP/5.6.30

Content-Type: text/html; charset=iso-8859-1

没有设置referer白名单的www.qq.com被403拒绝


[root@abc 111.com]# curl -e "http://ask.apelearn.com"-x127.0.0.1:80 111.com/1.png  -I

HTTP/1.1 200 OK

Date: Sun, 26 Nov 2017 08:50:38 GMT

Server: Apache/2.4.28 (Unix) PHP/5.6.30

Last-Modified: Sun, 26 Nov 2017 07:07:52 GMT

ETag: "7913-55edd71b4a200"

Accept-Ranges: bytes

Content-Length: 30995

Content-Type: image/png

设置了http://ask.apelearn.com白名单的被允许访问200


二、目录访问控制

访问控制目录,只有允许的源ip才能打开目录。其他的被deny

修改:

[root@abc 111.com]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<Directory /data/wwwroot/111.com/admin>

        Order deny,allow

        Deny from all

        Allow from 127.0.0.1

    </Directory>


Order 定义顺序。是先允许还是先访问,如果deny在前,则先执行下面deny开头的,如果allow在前,则执行allow开头的。例如这个配置文件写的是deny全部,如果把deny放在后面,则就算允许了127.0.0.1,后面还是会被deny掉


实验:


[root@abc 111.com]# curl -x127.0.0.1:80 111.com/admin/index.php -I

HTTP/1.1 200 OK

Date: Sun, 26 Nov 2017 09:35:53 GMT

Server: Apache/2.4.28 (Unix) PHP/5.6.30

X-Powered-By: PHP/5.6.30

Content-Type: text/html; charset=UTF-8

白名单的127.0.0.1被允许访问


[root@abc 111.com]# curl -x192.168.52.100:80 111.com/admin/index.php -I

HTTP/1.1 403 Forbidden

Date: Sun, 26 Nov 2017 09:35:54 GMT

Server: Apache/2.4.28 (Unix) PHP/5.6.30

Content-Type: text/html; charset=iso-8859-1

没有白名单的192.168.52.100被deny


三、文件/链接访问控制

访问控制除了目录,还可以访问控制一个文件名/链接

修改:

[root@abc 111.com]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<Directory /data/wwwroot/111.com/>

      <FilesMatch admin.php(.*)>

        Order deny,allow

        Deny from all

        Allow from 127.0.0.1

       </FilesMatch>

    </Directory>

加上FilesMatch admin.php(.*),表示在 /data/wwwroot/111.com/ 下匹配到的文件全部被控制访问


测试:

[root@abc admin]# curl -x192.168.52.100:80 111.com/admin/index.php -I

HTTP/1.1 200 OK

Date: Sun, 26 Nov 2017 09:47:09 GMT

Server: Apache/2.4.28 (Unix) PHP/5.6.30

X-Powered-By: PHP/5.6.30

Content-Type: text/html; charset=UTF-8

之前控制目录的index.php可以访问


[root@abc admin]# curl -x192.168.52.100:80 '111.com/admin/admin.php?sada' -I

HTTP/1.1 403 Forbidden

Date: Sun, 26 Nov 2017 09:48:33 GMT

Server: Apache/2.4.28 (Unix) PHP/5.6.30

Content-Type: text/html; charset=iso-8859-1

目录下就没有访问的文件,但是显示403权限不够,说明403和404的区别,权限不够时就没有权利匹配或查看,所以不管文件是否真实存在











本文转自 小新锐 51CTO博客,原文链接:http://blog.51cto.com/13407306/2054192,如需转载请自行联系原作者
相关实践学习
消息队列+Serverless+Tablestore:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
目录
相关文章
|
2月前
|
网络虚拟化 数据安全/隐私保护 数据中心
对比了思科和华为网络设备的基本配置、接口配置、VLAN配置、路由配置、访问控制列表配置及其他重要命令
本文对比了思科和华为网络设备的基本配置、接口配置、VLAN配置、路由配置、访问控制列表配置及其他重要命令,帮助网络工程师更好地理解和使用这两个品牌的产品。通过详细对比,展示了两者的相似之处和差异,强调了持续学习的重要性。
66 2
|
3月前
|
网络协议 网络虚拟化 数据安全/隐私保护
访问控制列表(ACL)配置
访问控制列表(ACL)配置
访问控制列表(ACL)配置
|
3月前
|
安全 Java 数据安全/隐私保护
如何配置 Java 安全管理器来避免访问控制异常
配置Java安全管理器以防止访问控制异常,需在启动JVM时通过 `-Djava.security.manager` 参数启用,并设置安全策略文件,定义权限规则,限制代码执行操作,确保应用安全。
223 1
|
4月前
|
Apache 数据安全/隐私保护
HAProxy的高级配置选项-ACL篇之基于源地址访问控制案例
这篇文章介绍了HAProxy的ACL(访问控制列表)功能,特别是如何基于源地址进行访问控制的高级配置选项,并通过实战案例展示了如何配置ACL规则以允许或阻止特定IP地址或IP范围的访问。
66 7
HAProxy的高级配置选项-ACL篇之基于源地址访问控制案例
|
4月前
|
Apache 数据安全/隐私保护
HAProxy的高级配置选项-ACL篇之基于策略的访问控制
这篇文章介绍了HAProxy的高级配置选项,特别是如何使用ACL(访问控制列表)进行基于策略的访问控制,通过实战案例展示了如何配置HAProxy以允许或拒绝来自特定源地址的访问。
88 6
HAProxy的高级配置选项-ACL篇之基于策略的访问控制
ly~
|
4月前
|
消息中间件 搜索推荐 大数据
一般情况下在 RocketMQ 中添加 access key 的步骤: 一、确定配置文件位置 RocketMQ 的配置文件通常位于安装目录下的 conf 文件夹中。你需要找到 broker.conf 或相关的配置文件。 二、编辑配置文件 打开配置文件,查找与 ACL(访问控制列表)相关的配置部分。 在配置文件中添加以下内容:
大数据广泛应用于商业、金融、医疗和政府等多个领域。在商业上,它支持精准营销、客户细分及流失预测,并优化供应链管理;金融领域则利用大数据进行风险评估、市场预测及欺诈检测;医疗行业通过大数据预测疾病、提供个性化治疗;政府运用大数据进行城市规划和公共安全管理;工业领域则借助大数据进行设备维护、故障预测及质量控制。
ly~
224 2
|
3月前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
58 0
|
4月前
|
NoSQL 关系型数据库 MySQL
HAProxy的高级配置选项-haproxy的四层负载及访问控制案例
这篇文章介绍了HAProxy的高级配置选项,特别是如何进行四层负载均衡和基于策略的访问控制。通过实战案例,展示了如何配置HAProxy以实现对特定IP地址的访问控制,以及如何通过四层负载均衡将流量分配到后端的MySQL和Redis服务。
228 6
|
5月前
|
监控 安全 API
Android项目架构设计问题之保证线上用户不会进入到本地配置页面如何解决
Android项目架构设计问题之保证线上用户不会进入到本地配置页面如何解决
38 0
|
5月前
|
JSON Android开发 数据格式
Android项目架构设计问题之在远端动态配置中添加相应配置如何解决
Android项目架构设计问题之在远端动态配置中添加相应配置如何解决
42 0

热门文章

最新文章