This module is a client for Google Safe Browsing API v3. It aims to be able to synchronize an offline, encrypted database of URLs pointing to potentially malicious content, and perform fast lookups against that database.
For a taste what the target API is going to look like, check out the very well-commented example app.
- Swappable persistence layer implemented on top of Redis.
- Request serializers and response parsers for the API's endpoints for:
- data,
- data redirects, and
- full-length hashes.
- Fetch methods wrapping the above and the persistence layer to perform synchronization operations.
- URL canonicalizer, with proper support for encoding IDNs. Need further tests.
- Lookup expression generator, to create the different variants of canonicalized URLs to hash and match against hash prefixes and full-length hashes.
-
Fetcher
class to schedule data fetches from the API. It should automatically fetch data at specified intervals, obey backoff constraints, and where possible batch full-length hash requests. Need further tests. -
Matcher
andMatchResults
classes, to wrap the URL canonicalizer, lookup expression generator, and persistence layer to cleanly perform lookups. Need further tests.
MIT.