url-safety-scanner
v1.0.4
Published
Scan urls to check if they're safe to click or dangerous
Maintainers
Readme
Url Safety Scanner
Small Node.js utility to check for the safety of URLs.
Installation
npm install url-safety-scanneror
yarn add url-safety-scannerUsage
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));
// falsescan
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
