Skip to content

client9/gsb4u

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This implements a toolkit for implementing the Google Safe Browsing API v2

The lib directory contains the pieces you'll need to assemble to match your enivroment:

lib/GSB_Client.php The client to test if a URL is blacklisted
lib/GSB_Exception.php An empty class to namespace our exceptions
lib/GSB_Logger.php A really simple logger. Ideally you'd subclass to modify for your environment
lib/GSB_Request.php All network (http) calls are here
lib/GSB_Storage.php Every database query is here, wrapper up in a function
lib/GSB_Updater.php Updates the local GSB database
lib/GSB_URL.php URL cannonicalization

bin-sample shows how this might be done. You'll want to rewrite these for match your environment:

bin-sample/intro.php common code for both lookup and updater
bin-sample/lookup.php CLI to test a URL
bin-sample/update.php code to update the local GSB database
bin-sample/cron.sh shows how update might be run periodicially

The URL lookup and the local database update shares common code:

$api = 'YOUR-API-KEY-HERE';
$gsblists = array('goog-malware-shavar', 'googpub-phish-shavar');

// make a PDO object, 2nd line is just good practice
$dbh = new PDO('mysql:host=127.0.0.1;dbname=gsb', 'root');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// create the pieces.  Subclass, over-ride for your environment
$storage = new GSB_StoreDB($dbh);
$network = new GSB_Request($api);
$logger  = new GSB_Logger(5);

To make URL checker:

// make the client with the pieces, and test
$client  = new GSB_Client($storage, $network, $logger);
$client->lookup('A URL');

To make a database updater:

$x = new GSB_Updater($storage, $network, $logger);
$x->downloadData($gsblists, FALSE);
$storage->fullhash_delete_old();

About

Google Safe Browsing batch server, client

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published