turbo124 / waf
Firewall package
v1.0.0
2024-03-28 21:24 UTC
Requires
- guzzlehttp/guzzle: ^7.5
- illuminate/collections: ^10
- nesbot/carbon: 2.x-dev
Requires (Dev)
- monolog/monolog: ^3.0@dev
- phpstan/phpstan: 1.11.x-dev
- phpunit/phpunit: ^10.1
- vlucas/phpdotenv: ^5.6@dev
This package is auto-updated.
Last update: 2024-11-28 23:08:26 UTC
README
A wrapper over the Cloudflare WAF.
Stop threats at the network edge, not at your application.
Ban IP addresses at the network edge
Initialize the Cloudflare WAF
$zone = The Cloudflare Zone ID
$account_id = The Cloudflare Account ID;
$email = The email address associated with the cloudflare account;
$api_key = The cloudflare API key (must have permissions with write Zone Rulesets and Rules);
Init the WAF
$waf = new \Turbo124\Waf\Waf($api_key, $email, $zone, $account_id);
Ban a IP address
$waf->unbanIp('103.15.248.112');
Unban a IP Address
$waf->unbanIp('103.15.248.112');
Ban a ASN
$waf->banAsn('10343');
UnBan a ASN
$waf->unbanAsn('10343');
Ban a country by their ISO 3166 2 country code
$waf->banCountry('DE');
UnBan a country by their ISO 3166 2 country code
$waf->unbanCountry('DE');
Managed challenge a IP Address
$waf->challengeIp('103.15.248.112');
Disable managed challenge on a IP Address
$waf->unchallengeIp('103.15.248.112');
Bonus intelligence helpers.
Cloudflare providers some nifty intelligence metrics on certain domains and IP addresses and can provide risk ratings
Get Domain Information
$waf->meta->getDomainInfo('example.com');
Response
[ "domain" => "puabook.com", "ip" => "51.254.35.55", "risk_type_string" => "Parked & For Sale Domains,Security Risks", "risk_type" => [ [ "id" => 128, "super_category_id" => 32, "name" => "Parked & For Sale Domains", ], [ "id" => 32, "name" => "Security Risks", ], ], "content_catgories" => [], "content_category_string" => "", ]
Get IP Information
$waf->meta->getIpInfo('210.140.43.55');
Response
[ "ip" => "210.140.43.55", "asn" => 4694, "country" => "JP", "risk_types" => [], ]