uspdev/ip-control
Composer 安装命令:
composer require uspdev/ip-control
包简介
Blibliteca de controle de acesso por IP
README 文档
README
Biblioteca que limita o acesso aos endereços da aplicação com base no IP de orígem.
Em alguns casos queremos limitar nossa aplicação ou parte dela do acesso público e irrestrito. Essa biblioteca permite restringir o acesso por meio de uma lista de ips e máscaras autorizados por meio de uma diretiva simples nas rotas a serem protegidas.
Ipcontrol::proteger();
Ao colocar essa linha no seu código, a biblioteca verificará o endereço de orígem da requisição e caso seja negado retornará uma mensagem "HTTP 403 Forbidden". Caso queira que sua aplicação trate o bloqueio chame o método com parâmetro false
Ipcontrol::proteger(false);
Como a lista de ips liberados é guardado em um arquivo texto, a biblioteca não foi pensada em regras complexas. Ela é bastante útil quando temos aplicações de uso interno e que queremos restringir aos ips da unidade, por exemplo.
Dependências
Esta biblioteca foi testada somente em Linux e em PHP 7.2 e 7.3 usando apache.
Instalação e configuração
Para instalar use o composer
composer require uspdev/ip-control
A biblioteca usa as seguintes configurações
putenv('USPDEV_IP_CONTROL=whitelist'); putenv('USPDEV_IP_CONTROL_LOCAL=pasta/onde/guardar/os/arquivos');
USPDEV_IP_CONTROL pode assumir o valor 'localhost', dessa forma restringindo o acesso somente à máquina local.
Se USPDEV_IP_CONTROL não for definido no ambiente, o acesso será liberado por padrão.
O arquivo uspdev_ip_control_whitelist.txt será criado na pasta indicada acima e deve ser preenchido adequadamente. Ele tem o seguinte formato
ip,mascara,comentário
Exemplo
200.144.248.41, 32, meu 1o. endereço liberado
143.107.225.0, 24, minha 1a. rede liberada
Caso o arquivo esteja vazio, a biblioteca vai negar todos os acessos, menos localhost.
O acesso local (localhost) é sempre liberado por padrão.
Exemplo de utilização
putenv('USPDEV_IP_CONTROL=whitelist'); putenv('USPDEV_IP_CONTROL_LOCAL='.__DIR__.'/local'); use Uspdev\Ipcontrol\Ipcontrol; Ipcontrol::proteger();
Testes
Em linha de comando, rode o teste em
php vendor/uspdev/ip-control/test/test.php
uspdev/ip-control 适用场景与选型建议
uspdev/ip-control 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 61 次下载、GitHub Stars 达 1, 最近一次更新时间为 2020 年 03 月 04 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 uspdev/ip-control 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 uspdev/ip-control 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 61
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 7
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: GPL-3.0-or-later
- 更新时间: 2020-03-04