mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-30 16:18:07 +01:00
24 lines
766 B
JavaScript
24 lines
766 B
JavaScript
const levenshtein = require('fast-levenshtein')
|
|
const LEVENSHTEIN_TOLERANCE = 4
|
|
|
|
// credit to @sogoiii and @409H for their help!
|
|
// Return a boolean on whether or not a phish is detected.
|
|
function isPhish({ hostname, blacklist, whitelist, fuzzylist }) {
|
|
|
|
// check if the domain is part of the whitelist.
|
|
if (whitelist && whitelist.includes(hostname)) return false
|
|
|
|
// check if the domain is part of the blacklist.
|
|
if (blacklist && blacklist.includes(hostname)) return true
|
|
|
|
// check for similar values.
|
|
const levenshteinForm = hostname.replace(/\./g, '')
|
|
const levenshteinMatched = fuzzylist.some((element) => {
|
|
return levenshtein.get(element, levenshteinForm) <= LEVENSHTEIN_TOLERANCE
|
|
})
|
|
|
|
return levenshteinMatched
|
|
}
|
|
|
|
module.exports = isPhish
|