nguyenanhung/basic-firewall
Composer 安装命令:
composer require nguyenanhung/basic-firewall
包简介
PHP Basic Firewall
README 文档
README
PHP Basic Firewall
Thư viện PHP Basic Firewall được xây dựng bằng PHP cung cấp 1 phương thức đơn giản để hạn chế quyền truy cập website /
api / webservice dựa vào địa chỉ IP truy cập của người dùng.
Thông thường Firewall tốt nhất nên được thiết đặt từ tầng hệ thống: hệ điều hành có cài tường lửa
như iptables, firewalld hay CSF.
Tuy nhiên, trong 1 số trường hợp DEV không có quyền can thiệp hệ thống hoặc không nắm chắc. Hoặc giả như muốn chủ động
trong các tình huống thì có thể tích hợp gói PHP Basic Firewall này vào để thực hiện từ tầng Application.
Version Support
- V1.x support all PHP version
>=5.4 - V2.x support all PHP version
>=7.0
Hướng dẫn sử dụng
Cài đặt gói
Cài đặt gói Basic Firewall thông qua composer với lệnh như sau
composer require nguyenanhung/basic-firewall
Hướng dẫn tích hợp Firewall
Tham khảo cách tích hợp thông qua hướng dẫn tại đoạn code ví dụ dưới đây
<?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
Trong ví dụ trên, chỉ những IP bắt đầu bằng 192.168.0 (loại trừ 192.168.0.50) và 127.0.0.1 sẽ được cho phép truy
cập bởi Firewall. Tất cả các IP khác, firewall sẽ return false
checkUserConnect(false)khai báotruehoặcfalseđể xác định mặc định firewall cho phép hay từ chối truy cập ( Optional - Defaultfalse).truenếu mặc định cho phép truy cập,falsenếu mặc định từ chốisetIpWhiteList($whiteList)khai báo$whiteListIP list cho phép truy cậpsetIpBlackList($blackList)khai báo$blackListIP list từ chối truy cập
IP List Formats
Firewall hỗ trợ input các IP whitelist và blacklist như sau
| Type | Syntax | Details |
|---|---|---|
| IPV6 | ::1 |
Hỗ trợ các viết tắt |
| IPV4 | 192.168.0.1 |
|
| Range | 192.168.0.0-192.168.1.60 |
Bao gồm tất cả các IP từ 192.168.0.0 đến 192.168.0.255và từ 192.168.1.0 đến 198.168.1.60 |
| Wild card | 192.168.0.* |
Tất cả IP bắt đầu bằng 192.168.0Nó tương tự với cách khai báo 192.168.0.0-192.168.0.255 |
| Subnet mask | 192.168.0.0/255.255.255.0 |
Tất cả IP bắt đầu bằng 192.168.0Nó tương tự với cách khai báo 192.168.0.0-192.168.0.255 và 192.168.0.* |
| CIDR Mask | 192.168.0.0/24 |
Tất cả IP bắt đầu bằng 192.168.0Nó tương tự với cách khai báo 192.168.0.0-192.168.0.255 và 192.168.0.* cũng như 192.168.0.0/255.255.255.0 |
Hướng dẫn tích hợp hàm tiện ích Check System
Gói này cung cấp thêm 1 lớp tiện ích, dùng kiểm tra mạng, extension hoặc kiểm tra kết nối tới MySQL Database. Tham khảo cách sử dụng dưới đây
<?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');
LICENSE
Gói được phân phối bởi giấy phép , tham khảo chi
tiết giấy phép tại đây
Gói có sử dụng packages m6web/firewall được cung cấp bởi M6Web, bạn cũng có thể sử dụng riêng gói này theo đường
link tại đây
Hỗ trợ
Nếu có bất kì câu hỏi hoặc cần hỗ trợ nào, liên hệ theo thông tin sau
| Name | Skype | ||
|---|---|---|---|
| Hung Nguyen | dev@nguyenanhung.com | nguyenanhung5891 | @nguyenanhung |
From Vietnam with Love ❤️
nguyenanhung/basic-firewall 适用场景与选型建议
nguyenanhung/basic-firewall 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 9.78k 次下载、GitHub Stars 达 6, 最近一次更新时间为 2021 年 08 月 31 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「firewall」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 nguyenanhung/basic-firewall 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 nguyenanhung/basic-firewall 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 nguyenanhung/basic-firewall 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Web Application Firewall (WAF) package for Laravel
PHPIDS (PHP-Intrusion Detection System) is a simple to use, well structured, fast and state-of-the-art security layer for your PHP based web application
Alfabank REST API integration
Web Application Firewall (WAF) package for Laravel
help on secure website against brutal force attack
A Laravel IP whitelisting and blacklisting
统计信息
- 总下载量: 9.78k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 6
- 点击次数: 7
- 依赖项目数: 6
- 推荐数: 5
其他信息
- 授权协议: GPL-3.0
- 更新时间: 2021-08-31