oyeaussie/phpfirewall

PHPFirewall是一个允许/阻止通过IP地址连接到您的网络资源的小工具。IP地址详情可以从本地数据库获取,或者通过调用IP2Location.io的API来获取。


README

PHPFirewall是一个允许/阻止通过IP地址连接到您的网络资源的小工具。IP地址详情可以从本地数据库获取,或者通过调用IP2Location.io的API来获取。

为什么是这个项目?

互联网一直在发展。每天都有新的设备上线,这要求ISP将新的网络范围添加到他们的系统中。这使得像思科或pfsense(Linux)这样的防火墙很难管理策略或了解特定地区的ISP引入的所有网络。大多数网络黑客攻击都是由于不正确的/失败的防火墙规则引起的。很难知道一个地区的所有网络IP地址范围。

我想创建一个可以在共享主机上安装的防火墙应用程序,它不需要物理访问硬件,也不需要专用硬件来运行。PHPFirewall可以在Cpanel等共享主机环境中运行,并且表现良好。大多数Cpanel提供商都通过SSH为用户提供访问权限,因此可以通过CLI管理防火墙。

整个想法是不必担心哪些IP地址属于世界的哪个部分。一行代码就足以允许该地区的连接,而防火墙将负责阻止其他连接。Ip2location.io API与该应用程序PHPFirewall一起,使得这一点成为可能。

代码示例

//In index.php
<?php

include 'vendor/autoload.php';

//At this point, we assume that firewall configuration and/or IP2location API keys are set!
if (!(new \PHPFirewall\Firewall)->checkIp()) {
    //Send 404
    http_response_code(404);
    exit;
}

// Rest of your code

文档

本存储库的文档

致谢

感谢以下项目为他们的出色工作。没有他们,这个项目将不可能实现。

Composer
Symphony Http Foundation
Ip2location.io - https://www.ip2location.io/
Ip2location PHP模块 - https://github.com/chrislim2888/IP2Location-PHP-Module
Ip2location代理PHP模块 - https://github.com/ip2location/ip2proxy-php
Guzzle - https://github.com/guzzle/guzzle
Flysystem - https://github.com/thephpleague/flysystem
SleekDB - https://github.com/SleekDB/SleekDB
The PHP League CSV - https://github.com/thephpleague/csv
Carbon Date : https://carbon.nesbot.com/
Codeception : https://codeception.com/
PHPUnit : https://phpunit.de/

问题/讨论/新功能

如果您遇到错误或想讨论与此工具或添加新功能相关的问题,请随意提出问题。

给我买咖啡/啤酒

时间是宝贵的。如果您觉得这个项目很有帮助,并且它为您节省了宝贵的时间,相当于一杯咖啡或一杯啤酒...

Buy Me A Coffee Buy Me A Beer

雇佣我

如果您想开发一个需要专家级编程的PHP应用程序,我可以为您提供服务。请与我联系,我们可以进一步讨论。

存储库活动

Repo Activity