The Project Honey Pot's un-official PHP SDK.
Using the library, you can start auto-detecting bad visitors (HttpBL) and/or help
deterring new ones (Quicklink).
composer require jadb/honeypot:1.0.x-dev
To use the Http::BL API, you will first need an API key. Head over and register if you haven't already (this is a referral link):
Once you have that, you can just do:
<?php
if (!(new \Honeypot\HttpBL('your-api-key'))->isSafe('127.0.0.1') {
exit('Unsafe visitor');
}If you want more control over the rules:
<?php
/**
* By default, strict mode is used. When not in strict mode, any pass is a pass. This ruleset
* translates to: 5 days or older, or threat score lower than 2, or visitor type lower than 4.
*/
$strict = false;
$age = 5;
$score = 2;
$type = 4;
if (!(new \Honeypot\HttpBL('your-api-key'))->isSafe('127.0.0.1', $age, $score, $type) {
exit('Unsafe visitor');
}For even more, you could just get the Address object and create your own validation:
<?php
$address = (new \Honeypot\HttpBL('your-api-key'))->address('127.0.0.1');NOTE: For testing purposes, dummy data is made available.
To use quicklinks and help deterring new bad IPs, you will need to get a honeypot's URL or host your own honeypot.
Once that is done, you can create up to 8 different links by doing:
<?php
// this will create 5 links
echo (new \Honeypot\Quicklink('http://link.to.honeypot.org/'))->render(5);- Fork
- Mod, fix
- Test - this is important, so it's not unintentionally broken
- Commit - do not mess with license, todo, version, etc. (if you do change any, bump them into commits of their own that I can ignore when I pull)
- Pull request - bonus point for topic branches
To ensure your PRs are considered for upstream, you MUST follow the PSR2 coding standards.
Copyright (c) 2015, Jad Bitar and licensed under The MIT License.