aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/blacklister.js
diff options
context:
space:
mode:
authorKevin Serrano <kevgagser@gmail.com>2017-07-28 06:22:09 +0800
committerGitHub <noreply@github.com>2017-07-28 06:22:09 +0800
commitd15e402ed87bf7533250c49a7972a7b1a12c99c2 (patch)
tree3bbeb674eb53c7dc7a9f616c75b63825cbe2848f /app/scripts/blacklister.js
parente3b5bb2052d59afbf9c2761af883de719261062e (diff)
parent7c71ee1babcaad19dbe7db6c5abfefe2f9654781 (diff)
downloadtangerine-wallet-browser-d15e402ed87bf7533250c49a7972a7b1a12c99c2.tar.gz
tangerine-wallet-browser-d15e402ed87bf7533250c49a7972a7b1a12c99c2.tar.zst
tangerine-wallet-browser-d15e402ed87bf7533250c49a7972a7b1a12c99c2.zip
Merge pull request #1838 from MetaMask/i1805-LiveBlacklistUpdating
Live blacklist updating
Diffstat (limited to 'app/scripts/blacklister.js')
-rw-r--r--app/scripts/blacklister.js45
1 files changed, 9 insertions, 36 deletions
diff --git a/app/scripts/blacklister.js b/app/scripts/blacklister.js
index 9337599cc..37751b595 100644
--- a/app/scripts/blacklister.js
+++ b/app/scripts/blacklister.js
@@ -1,41 +1,14 @@
-const levenshtein = require('fast-levenshtein')
-const blacklistedMetaMaskDomains = ['metamask.com']
-const blacklistedDomains = require('etheraddresslookup/blacklists/domains.json').concat(blacklistedMetaMaskDomains)
-const whitelistedMetaMaskDomains = ['metamask.io', 'www.metamask.io']
-const whitelistedDomains = require('etheraddresslookup/whitelists/domains.json').concat(whitelistedMetaMaskDomains)
-const LEVENSHTEIN_TOLERANCE = 4
-const LEVENSHTEIN_CHECKS = ['myetherwallet', 'myetheroll', 'ledgerwallet', 'metamask']
+const extension = require('extensionizer')
+var port = extension.runtime.connect({name: 'blacklister'})
+port.postMessage({ 'pageLoaded': window.location.hostname })
+port.onMessage.addListener(redirectIfBlacklisted)
-// credit to @sogoiii and @409H for their help!
-// Return a boolean on whether or not a phish is detected.
-function isPhish(hostname) {
- var strCurrentTab = hostname
-
- // check if the domain is part of the whitelist.
- if (whitelistedDomains && whitelistedDomains.includes(strCurrentTab)) { return false }
-
- // check if the domain is part of the blacklist.
- var isBlacklisted = blacklistedDomains && blacklistedDomains.includes(strCurrentTab)
-
- // check for similar values.
- var levenshteinMatched = false
- var levenshteinForm = strCurrentTab.replace(/\./g, '')
- LEVENSHTEIN_CHECKS.forEach((element) => {
- if (levenshtein.get(element, levenshteinForm) < LEVENSHTEIN_TOLERANCE) {
- levenshteinMatched = true
- }
- })
-
- return isBlacklisted || levenshteinMatched
-}
-
-window.addEventListener('load', function () {
- var hostnameToCheck = window.location.hostname
- if (isPhish(hostnameToCheck)) {
- // redirect to our phishing warning page.
+function redirectIfBlacklisted (response) {
+ const { blacklist } = response
+ const host = window.location.hostname
+ if (blacklist && blacklist === host) {
window.location.href = 'https://metamask.io/phishing.html'
}
-})
+}
-module.exports = isPhish