moh8med / bffs
BFFS 是一个使用 Laravel 构建的简单项目,实现了前端后端分离模式,帮助您在 API 和微服务前面构建安全防护。
v1.0.4
2023-02-05 09:51 UTC
Requires
- php: ^8.0.2
- geoip2/geoip2: ~2.1
- guzzlehttp/guzzle: ^7.5
- laravel/framework: ^9.19
- laravel/octane: ^1.4
- laravel/sanctum: ^3.0
- laravel/tinker: ^2.7
- monicahq/laravel-cloudflare: ^3.3
- propaganistas/laravel-disposable-email: ^2.2
- propaganistas/laravel-phone: ^4.4
- spatie/laravel-responsecache: ^7.4
- spatie/laravel-uptime-monitor: ^4.2
- sunspikes/clamav-validator: ^2.6
- torann/geoip: ^3.0
Requires (Dev)
- fakerphp/faker: ^1.9.1
- laravel/pint: ^1.0
- laravel/sail: ^1.0.1
- mockery/mockery: ^1.4.4
- nunomaduro/collision: ^6.1
- phpunit/phpunit: ^9.5.10
- spatie/laravel-ignition: ^1.0
README
BFFS 是一个使用 Laravel 构建的简单项目,实现了前端后端分离模式,帮助您在 API 和微服务前面构建安全防护。
BFFS 的一些关键点如下
- 实现了前端后端分离模式,分离前端和后端关注点,提高安全性。
- 包括高级请求验证功能,例如 E.164 国际电话号码标准、密码 NIST 标准、电子邮件 RFC 和 DNS 验证、电子邮件欺骗检测以及使用 Cisco ClamAV 扫描上传的文件。
- 使用 Redis 对请求进行速率限制,以提高安全性并降低 DDoS 攻击风险。
- 利用 Swoole 加快响应时间,提高整体性能。
- 使用流行的 PHP 网络应用程序框架 Laravel 构建,使其易于与现有系统集成。
功能
监控
- 正常运行时间监控
- SSL 证书到期
- 电子邮件通知
- Slack 通知
性能调整
- 在 Octane (Swoole 或 Roadrunner) 上运行
- API 聚合
- 使用 Redis 进行响应缓存
安全加固
- 可信主机
- 将 Cloudflare IP 添加到可信代理
- CORS 处理
- 使用 Redis 进行速率限制
- 通过 GeoIP2 (MaxMind DB) 限制访问
网络应用程序防火墙 (WAF)
- 机器人:不良机器人检测
- RFI:远程文件包含
- XSS:跨站脚本
- SQLi:SQL 注入
防病毒和恶意软件
- 使用 Cisco ClamAV 扫描上传的文件
高级请求验证
- 电子邮件 RFC 兼容性
- 电子邮件域名 DNS
- 电子邮件一次性/一次性域名
- 电子邮件欺骗检测
- 电子邮件可达性检查
- 密码 NIST 标准
- HaveIBeenPwned 密码检查
- 电话国家代码检查和 E.164 标准
- 电话号码类型:手机、固定电话等
- 电话号码验证
入门
要开始使用 BFFS,您需要具备对 Laravel 及其依赖的基本理解。
安装
- 通过 composer 安装包
composer create-project moh8med/bffs
- 运行迁移
php artisan migrate
-
在 .env 文件中配置您的环境变量。
-
更新数据库
# update the disposable domains list php artisan disposable:update # retrieves and cache Cloudflare's IP blocks php artisan cloudflare:reload # register for a license key at www.maxmind.com # set your MAXMIND_LICENSE_KEY in .env file # and update the geoip database php artisan geoip:update
- 创建您的第一个正常运行时间监控
# create your first monitor php artisan monitor:create https://example.com/ # check the uptime of all sites php artisan monitor:check-uptime
- 您需要安装 Cisco ClamAV 来扫描上传的文件以检测恶意软件
docker run \
--interactive \
--publish 13310:3310 \
--publish 7357 \
--tty \
--rm \
--name "clam_container_01" \
clamav/clamav:unstable
然后在 .env 文件中设置 CLAMAV_SKIP_VALIDATION=false
。
用法
一旦服务器运行,您就可以开始向 BFFS 保护的端点发送请求。
- 启动服务器
php artisan octane:start --port=8001 --watch
- 测试您的 BFFS 服务器
curl http://127.0.0.1:8001/todos | jq
贡献
如果您想为项目做出贡献,请随时提交带有更改的拉取请求。
许可证
本项目采用 MIT 许可证。