url-safety-scanner
v1.0.4
Published
Scan urls to check if they're safe to click or dangerous
Downloads
7
Maintainers
Readme
Url Safety Scanner
Small Node.js utility to check for the safety of URLs.
Installation
npm install url-safety-scanner
or
yarn add url-safety-scanner
Usage
This library is based on Google Safe Browsing, so it requires a free Google API Key, get one here.
Import the library and initialize the Scanner object:
import Scanner from "url-safety-scanner";
// With updated threat list
const myScanner = await Scanner({
apiKey: #GOOGLE_API_KEY (required),
clientId: #UNIQUE_IDENTIFIER (required),
clientVersion: #CLIENT_VERSION (optional)
}, true)
// With default threat list
const myScanner = Scanner({
apiKey: #GOOGLE_API_KEY (required),
clientId: #UNIQUE_IDENTIFIER (required),
clientVersion: #CLIENT_VERSION (optional)
})
API
Scanner
Scanner(config: Object, updateThreatInfo:boolean = false) => ScannerConstructor || Promise(ScannerConstructor)
Constructor for the Scanner object. If updateThreatInfo
is true, returns a Promise.
Parameters
config
Configuration object.
const config = {
apiKey: #GOOGLE_API_KEY (required),
clientId: #UNIQUE_IDENTIFIER (required),
clientVersion: #CLIENT_VERSION (optional)
}
updateThreatInfo
Should the constructor update the threat info list with the latest information? Defaults to false.
See Google Safe Browsing Docs for infos about the Threat List.
const config = {
apiKey: #GOOGLE_API_KEY (required),
clientId: #UNIQUE_IDENTIFIER (required),
clientVersion: #CLIENT_VERSION (optional)
}
Default Threat List:
The default Threat List includes everything:
THREAT_INFO = {
threatTypes: [
"MALWARE",
"SOCIAL_ENGINEERING",
"POTENTIALLY_HARMFUL_APPLICATION",
"UNWANTED_SOFTWARE",
],
platformTypes: [
"LINUX",
"OSX",
"IOS",
"WINDOWS",
"CHROME",
"ALL_PLATFORMS",
"ANY_PLATFORM",
"ANDROID",
],
threatEntryTypes: ["URL"],
};
isSafe
isSafe(url: String) => Promise<boolean>
isSafe
returns an Promise which resolves to true if the url is safe.
Parameters
url
A String of the url to scan.
Returns
Promise<boolean>
True if url is safe.
Example:
myScanner.isSafe("github.com")
.then(safe => console.log(safe));
// true
myScanner.isSafe("badwebsite.com")
.then(safe => console.log(safe));
// false
scan
scan(urls: Array(String)) => Promise<Array>
scan
returns an Promise of urls considered malicious.
Parameters
urls
An Array of urls to scan.
Returns
Promise<Array>
An Array of urls considered malicious.
Example:
myScanner.scan(["github.com"])
.then(data => console.log(data));
// []
myScanner.scan(["github.com", "badwebsite.com"])
.then(data => console.log(data));
// ["badwebsite.com"]
getSafeUrls
getSafeUrls(urls: Array<String>) => Promise<Array>
getSafeUrls
returns an Promise of urls considered safe.
Parameters
urls
An Array of urls to scan.
Returns
Promise<Array>
An Array of urls considered safe.
Example:
myScanner.getSafeUrls(["github.com", "badwebsite.com"])
.then(data => console.log(data));
// ["github.com"]
License
MIT License Alessio Franceschi