多维度架构之应用防火墙

多维度架构之应用防火墙

什么是应用防火墙

应用防火墙用于保护应用及服务不受恶意访问和攻击。

应用防火墙有别于网络防火墙,防火墙防火墙偏重对IP地址和端口端访问控制。

应用防火墙有有别于7层防火墙,7层防火墙虽然能实现拆包,根据协议,做出访问控制。

应用防火墙的核心功能除了局别7层防火墙的特点,颗粒度可以做到更细。

例如开发过程中我们有很多需求,直接在功能模块中实现。所谓应用防火墙就是将这些功能做成一个独立模块,实现共享和复用。

功能需求

计数器

计数器的需求很常见,功能简单,就是记录访问数量,计数器也是水军主要战场。

计数器需求:

  1. 阅读量
  2. 点赞
  3. 喜欢
  4. 回复数
  5. 转发
  6. 完播

对于网防火墙可以通过IP访问策略进行封杀,但是我国由于IP地址有限,主要的上网方式是NAT(网络地址转换),例如一个公司的办公室内所有电脑都是通过一个IP地址出去的。封杀IP地址容易误伤。

使用应用防火墙就容易很多,可以使用用户+COOKIE+IP地址的方案。

访问控制列表 ACL

访问控制即“通过”,“拒绝”

  1. 黑名单

  2. 白名单

用户认证

用户认证模块化,通过插件可以支持多种用户认证

  1. AAA

  2. LDAP

  3. MySQL

协议

应用防火墙无需拆包,因为我们是直接调用他的API。

  1. IP地址,端口号

  2. URL(GET)

  3. POST

  4. Cookie

  5. HTTP Header

  6. 协议(HTTP,JASON,AJAX,SOAP,XML-RPM...)

简单实现

应用防火墙我提供了一个思路,不便提供代码。

下面的代码是10年前写的,没有100%实现,因为该代码不会影响竞业,供大家参考。

	
<?php
/* 
* =====================================
* Website: http://netkiller.github.com
* Author: neo <netkiller@msn.com>
* Email: netkiller@msn.com
* =====================================
*/

class Logging {
	protected $file;
	public function __construct($logfile = "/tmp/debug.log"){
		$this->file = fopen($logfile,"a+");
	}
	public function __destruct() {
        //fclose($this->file);
    }
	public function close() {
        fclose($this->file);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

netkiller-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值