url-safety-scanner
TypeScript icon, indicating that this package has built-in type declarations

1.0.4 • Public • Published

Url Safety Scanner

Node.js CI

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

Package Sidebar

Install

npm i url-safety-scanner

Weekly Downloads

5

Version

1.0.4

License

MIT

Unpacked Size

51 kB

Total Files

21

Last publish

Collaborators

  • sekh