saippuakauppias / safe-browsing
Client to use Google's and Yandex Safe Browsing API (v4)
Installs: 17 058
Dependents: 0
Suggesters: 0
Security: 0
Stars: 10
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php-http/client-implementation: ^1.0
- php-http/discovery: ^1.6
- php-http/guzzle6-adapter: ^1.1
- php-http/message: ^1.7
Requires (Dev)
- php-http/mock-client: ^1.0
This package is auto-updated.
Last update: 2025-03-18 09:00:30 UTC
README
Client to use Google's and Yandex Safe Browsing API (v4). This library is fork of the bitecodes/safe-browsing with some improvements and updates.
Requirements
-
PHP7+ (tested only on PHP7.2 and PHP7.3)
-
guzzlehttp/guzzle >= v6
Installation
The preferred way to install this library is through composer.
Either run
$ composer require saippuakauppias/safe-browsing
or add
"saippuakauppias/safe-browsing": "^1.0"
to the require
section of your composer.json
file.
Usage
require 'vendor/autoload.php'; use Saippuakauppias\SafeBrowsing\Client as SBClient; use Http\Adapter\Guzzle6\Client as GuzzleClient; // config for Safe Browsing request $config = [ 'api_key' => '0123456789', // see API Keys section 'client_id' => 'ShortClientName', // change to your client name 'client_version' => '1.0.0', // change to your client version ]; // create HTTP Client $guzzle = new GuzzleClient(); // create Safe Browsing Client from HTTP Client and config $sbc = new SBClient($guzzle, $config); // if you need to check urls in Yandex Safe Browsing // uncomment next line (and change API Key of course!): // $sbc->setHost('sba.yandex.net'); // urls array (up to 500) $urls_need_check = [ // yandex safe browsing test urls "https://ydx-phish-shavar.cepera.ru", "https://ydx-malware-driveby-shavar.cepera.ru", // google safe browsing test urls // (see all in: https://testsafebrowsing.appspot.com ) "https://testsafebrowsing.appspot.com/s/phishing.html", "https://testsafebrowsing.appspot.com/s/malware.html", ]; // check urls in SB (execute 'threatMatches:find' request) $result = $sbc->lookup($urls_need_check); // example: result as php array var_dump($result->getContent()); // array(1) { // ["matches"]=> // array(2) { // [0]=> // array(5) { // ["threatType"]=> // string(18) "SOCIAL_ENGINEERING" // ["platformType"]=> // string(12) "ANY_PLATFORM" // ["threat"]=> // array(1) { // ["url"]=> // string(52) "https://testsafebrowsing.appspot.com/s/phishing.html" // } // ["cacheDuration"]=> // string(4) "300s" // ["threatEntryType"]=> // string(3) "URL" // } // [1]=> // array(5) { // ["threatType"]=> // string(7) "MALWARE" // ["platformType"]=> // string(12) "ANY_PLATFORM" // ["threat"]=> // array(1) { // ["url"]=> // string(51) "https://testsafebrowsing.appspot.com/s/malware.html" // } // ["cacheDuration"]=> // string(4) "300s" // ["threatEntryType"]=> // string(3) "URL" // } // } // } // example: show url valid or not one by one foreach($urls_need_check as $test_url) { echo $test_url . ' is valid: ' . (int) $result->isValid($test_url) . PHP_EOL; } // https://ydx-phish-shavar.cepera.ru is valid: 1 // https://ydx-malware-driveby-shavar.cepera.ru is valid: 1 // https://testsafebrowsing.appspot.com/s/phishing.html is valid: 0 // https://testsafebrowsing.appspot.com/s/malware.html is valid: 0
Usage Yandex Safe Browsing
To use Yandex Safe Browsing, you must change the API Key and replace the base host via the method:
$sbc->setHost('sba.yandex.net');
API Keys
Get Google API Key here.
Get Yandex API Key here.
Misc
Usage limits for Google SafeBrowsing.