nguyenanhung / basic-firewall
PHP 基础防火墙
v2.0.8
2024-08-20 05:46 UTC
Requires
- php: >=7.0
- ext-pdo: *
- tramtro/m6web-firewall: >=1.0
Requires (Dev)
- kint-php/kint: >=3.0
- monolog/monolog: >=1.26
- nguyenanhung/filesystem-helper: ^2.0
- nguyenanhung/nanoid-helper: ^2.0
Suggests
- ext-pdo: For Check Database Connection
- ext-pdo_mysql: For Check Database Connection with MySQL
README
PHP 基础防火墙
PHP Basic Firewall
库是用 PHP 编写的,提供了一种简单的方法来限制网站 / api / webservice 的访问权限,基于用户的访问 IP
地址。
通常,最好的防火墙应该从系统层设置:操作系统已经安装了如 iptables
、firewalld
或 CSF
防火墙。
然而,在某些情况下,开发者没有系统权限或者不太熟悉系统设置。或者在某些情况下,希望主动控制,可以将 PHP Basic Firewall
包集成到应用层。
版本支持
- V1.x 支持 PHP 所有版本
>=5.4
- V2.x 支持 PHP 所有版本
>=7.0
使用说明
安装包
使用以下命令通过 composer 安装 Basic Firewall 包
composer require nguyenanhung/basic-firewall
集成防火墙的说明
参考以下示例代码中的集成方式
<?php /** * Project basic-firewall * Created by PhpStorm * User: 713uk13m <dev@nguyenanhung.com> * Copyright: 713uk13m <dev@nguyenanhung.com> * Date: 09/01/2021 * Time: 00:50 */ require_once __DIR__ . '/vendor/autoload.php'; use nguyenanhung\PhpBasicFirewall\FirewallIP; // ==================================== Setup List IP Whitelist // Setup constants HUNGNG_IP_WHITELIST defined('HUNGNG_IP_WHITELIST') or define('HUNGNG_IP_WHITELIST', array( '127.0.0.1', '192.168.0.*', )); // Or Whitelist Array $whiteList = array( '127.0.0.1', '192.168.0.*', ); // ==================================== Setup List IP Blacklist // Setup constants HUNGNG_IP_BLACKLIST defined('HUNGNG_IP_BLACKLIST') or define('HUNGNG_IP_BLACKLIST', array( '127.0.0.1', '192.168.0.*', )); // Or Blacklist Array $blackList = array( '192.168.0.50', ); // ==================================== Start Firewall $firewall = new FirewallIP(); $firewall->setLogDestination(__DIR__ . '/logs/FirewallLog.log') ->setIpWhiteList($whiteList) ->setIpBlackList($blackList) ->checkUserConnect(false); if (true !== $firewall->isAccess()) { $firewall->writeErrorLog($firewall->errorLogMessage()); // Write log to /tmp/FirewallLog.log $firewall->accessDeniedResponse(); // Response 403 http code, Access Denied message } // ==================================== End Firewall // Pass qua firewall sẽ là các đoạn code thực hiện nghiệp vụ của bạn
在上述示例中,只有以 192.168.0 开头的 IP(排除 192.168.0.50)和 127.0.0.1 才能被防火墙允许访问。其他所有 IP,防火墙将返回 false
checkUserConnect(false)
声明true
或false
来确定默认防火墙是允许还是拒绝访问(可选 - 默认false
)。如果默认允许访问为true
,如果默认拒绝访问为false
setIpWhiteList($whiteList)
声明允许访问的$whiteList
IP 列表setIpBlackList($blackList)
声明拒绝访问的$blackList
IP 列表
IP 列表格式
防火墙支持以下格式的 IP 白名单和黑名单输入
集成系统检查函数的说明
此包还提供了一个额外的实用工具层,用于检查网络、扩展或检查与 MySQL 数据库的连接。以下是如何使用的参考
<?php /** * Project basic-firewall * Created by PhpStorm * User: 713uk13m <dev@nguyenanhung.com> * Copyright: 713uk13m <dev@nguyenanhung.com> * Date: 09/01/2021 * Time: 00:55 */ require_once __DIR__ . '/../vendor/autoload.php'; use nguyenanhung\PhpBasicFirewall\CheckSystem; $system = new CheckSystem(); // Kiểm tra phiên bản PHP $system->phpVersion(); // Kiểm tra các extension cần thiết $system->checkExtension('curl'); $system->checkExtension('pdo'); $system->checkExtension('mysqli'); $system->checkExtension('gd'); $system->checkExtension('mbstring'); $system->checkExtension('json'); $system->checkExtension('session'); $system->checkExtension('sockets'); $system->checkExtension('bcmath'); // Kiểm tra kết nối tới 1 server nào đó $system->phpTelnet('127.0.0.1', 3306); $system->phpTelnet('127.0.0.1', 2842); // Kiểm tra kết nối CSDL $system->checkConnectDatabase('127.0.0.1', '3306', 'my_data', 'root', 'hungna');
许可
此包通过以下许可证分发 ,有关许可证的详细信息请参阅此处
此包使用了由 M6Web
提供的 m6web/firewall
包,您也可以单独使用此包,链接为 此处
支持
如果您有任何问题或需要支持,请按照以下信息联系
来自越南的爱❤️