From 3bb801d058030697262872836738176f96e6b820 Mon Sep 17 00:00:00 2001 From: surveillanceeconomy Date: Wed, 29 May 2019 12:06:51 +0000 Subject: [PATCH] Upload files to 'addon_firefox/bcma' --- addon_firefox/bcma/anticloudflare.js | 56 +++++++++++----------------- addon_firefox/bcma/manifest.json | 2 +- addon_firefox/bcma/mydata.html | 8 +--- addon_firefox/bcma/mydata.js | 19 +--------- addon_firefox/bcma/style.css | 3 +- 5 files changed, 27 insertions(+), 61 deletions(-) diff --git a/addon_firefox/bcma/anticloudflare.js b/addon_firefox/bcma/anticloudflare.js index 59c06e3a1..09f272ac4 100644 --- a/addon_firefox/bcma/anticloudflare.js +++ b/addon_firefox/bcma/anticloudflare.js @@ -1,22 +1,12 @@ /* "Welcome to PRISM 2.0" */ -var cf_flag_ok = 'icons/cf_0.png'; -var cf_flag_ng = 'icons/cf_1.png'; -var force_whitelist = ['searxes.eu.org', 'thunderbird.net', 'mozilla.org', 'archive.org', 'cloudflare.com', 'cloudflareapps.com', 'cloudflare-dns.com', 'cloudflarestatus.com', 'cloudflareapi.com', 'cloudflare-ipfs.com', 'cloudflare-quic.com']; -var cfdomains = []; -var known_cf_domains = []; - -fetch('bcmadata.txt',{method:'GET'}).then(function (b) { - return b.text(); -}).then(function (b) { - cfdomains = b.split("\n").filter(v=>v!=''); - known_cf_domains = cfdomains; -}); - -var my_cf_collection = []; -var my_cf_ignore = []; -var my_action = 2; +const cf_flag_ok = 'icons/cf_0.png'; +const cf_flag_ng = 'icons/cf_1.png'; +const force_whitelist = ['searxes.eu.org', 'thunderbird.net', 'mozilla.org', 'archive.org', 'cloudflare.com', 'cloudflareapps.com', 'cloudflare-dns.com', 'cloudflarestatus.com', 'cloudflareapi.com', 'cloudflare-ipfs.com', 'cloudflare-quic.com']; +let my_cf_collection = []; +let my_cf_ignore = []; +let my_action = 2; function onError(e) { console.log(`BCMA: Error:${e}`); @@ -603,8 +593,8 @@ function get_realdomain(w) { } function update_icon(tid, url) { - var _nu = new URL(url); - var cf_hostname = _nu.hostname; + let _nu = new URL(url); + let cf_hostname = _nu.hostname; if ((_nu.protocol != 'http:' && _nu.protocol != 'https:') || cf_hostname.length < 1) { browser.browserAction.setIcon({ tabId: tid, @@ -620,17 +610,17 @@ function update_icon(tid, url) { }); return; } - if (known_cf_domains.includes(cf_hostname) || my_cf_collection.includes(cf_hostname)) { + if (my_cf_collection.includes(cf_hostname)) { if (my_action == 3) { browser.tabs.executeScript(tid, { matchAboutBlank: true, runAt: 'document_end', - code: "if (location.hostname=='%%CFHOST%%'||location.hostname.endsWith('.%%CFHOST%%')){if (!document.title.startsWith('[!!MITM!!]') && (typeof _bcma_bdr)=='undefined'){document.title='[!!MITM!!]'+document.title;function _bcma_bdr(){document.body.style = 'border:4px dashed #' + ['e74c3c', '9b59b6', '3498db', '17a589', '196f3d', 'f4d03f', 'f39c12', 'd35400'][Math.floor(Math.random() * 8)] + ' !important';setTimeout(_bcma_bdr,4860);};_bcma_bdr();}}".replace('%%CFHOST%%', cf_hostname).replace('%%CFHOST%%', cf_hostname) + code: "if (location.hostname=='%%CFHOST%%'||location.hostname.endsWith('.%%CFHOST%%')){if (!document.title.startsWith('[!!MITM!!]') && (typeof _bcma_bdr)=='undefined'){document.title='[!!MITM!!]'+document.title;function _bcma_bdr(){document.body.style = 'border:4px dashed #' + ['e74c3c', '9b59b6', '3498db', '17a589', '196f3d', 'f4d03f', 'f39c12', 'd35400'][Math.floor(Math.random() * 8)] + ' !important';setTimeout(_bcma_bdr,4900);};_bcma_bdr();}}".replace('%%CFHOST%%', cf_hostname).replace('%%CFHOST%%', cf_hostname) }); browser.tabs.executeScript(tid, { matchAboutBlank: true, runAt: 'document_idle', - code: "if (location.hostname=='%%CFHOST%%'||location.hostname.endsWith('.%%CFHOST%%')){if (!document.title.startsWith('[!!MITM!!]') && (typeof _bcma_bdr)=='undefined'){document.title='[!!MITM!!]'+document.title;function _bcma_bdr(){document.body.style = 'border:4px dashed #' + ['e74c3c', '9b59b6', '3498db', '17a589', '196f3d', 'f4d03f', 'f39c12', 'd35400'][Math.floor(Math.random() * 8)] + ' !important';setTimeout(_bcma_bdr,4860);};_bcma_bdr();}}".replace('%%CFHOST%%', cf_hostname).replace('%%CFHOST%%', cf_hostname) + code: "if (location.hostname=='%%CFHOST%%'||location.hostname.endsWith('.%%CFHOST%%')){if (!document.title.startsWith('[!!MITM!!]') && (typeof _bcma_bdr)=='undefined'){document.title='[!!MITM!!]'+document.title;function _bcma_bdr(){document.body.style = 'border:4px dashed #' + ['e74c3c', '9b59b6', '3498db', '17a589', '196f3d', 'f4d03f', 'f39c12', 'd35400'][Math.floor(Math.random() * 8)] + ' !important';setTimeout(_bcma_bdr,4900);};_bcma_bdr();}}".replace('%%CFHOST%%', cf_hostname).replace('%%CFHOST%%', cf_hostname) }); } browser.browserAction.setIcon({ @@ -678,11 +668,11 @@ browser.webRequest.onHeadersReceived.addListener(function (wr) { if (force_whitelist.includes(wr_hostname)) { return; } - var cf_is = (known_cf_domains.includes(wr_hostname) || my_cf_collection.includes(wr_hostname)) ? true : false; + var cf_is = (my_cf_collection.includes(wr_hostname)) ? true : false; if (!cf_is) { var cf_headers = wr.responseHeaders, cf_v_name, cf_v_value; - for (var i = 0; i < cf_headers.length; i++) { + for (let i = 0; i < cf_headers.length; i++) { cf_v_name = cf_headers[i]['name'].toLowerCase(); cf_v_value = (cf_headers[i]['value'] != undefined) ? cf_headers[i]['value'].toLowerCase() : ''; if (cf_v_name == 'server' && cf_v_value.includes('cloudflare')) { @@ -702,6 +692,10 @@ browser.webRequest.onHeadersReceived.addListener(function (wr) { if (cf_is) { if (my_cf_collection.length > 500) { my_cf_collection.shift(); + my_cf_collection.shift(); + my_cf_collection.shift(); + my_cf_collection.shift(); + my_cf_collection.shift(); } if (!my_cf_collection.includes(wr_hostname)) { my_cf_collection.push(wr_hostname); @@ -720,7 +714,7 @@ browser.webRequest.onHeadersReceived.addListener(function (wr) { } if (my_action == 2) { return { - redirectUrl: 'https://web.archive.org/web/' + wr.url.split('?')[0] + redirectUrl: 'https://web.archive.org/web/' + wr.url }; } } @@ -761,7 +755,7 @@ browser.webRequest.onBeforeRequest.addListener(function (wr) { if (force_whitelist.includes(wr_hostname)) { return; } - var cf_is = (known_cf_domains.includes(wr_hostname) || my_cf_collection.includes(wr_hostname)) ? true : false; + var cf_is = (my_cf_collection.includes(wr_hostname)) ? true : false; if (cf_is) { console.log('BCMA: Block Cloudflare BR', wr_hostname); if (my_action == 0 || my_action == 1) { @@ -777,7 +771,7 @@ browser.webRequest.onBeforeRequest.addListener(function (wr) { } if (my_action == 2) { return { - redirectUrl: 'https://web.archive.org/web/' + wr.url.split('?')[0] + redirectUrl: 'https://web.archive.org/web/' + wr.url }; } } @@ -788,20 +782,12 @@ browser.webRequest.onBeforeRequest.addListener(function (wr) { browser.runtime.onMessage.addListener(function (a, b, c) { if (a[0] == 'cf') { - c(['ok', JSON.stringify(my_cf_collection), JSON.stringify(my_cf_ignore), (known_cf_domains.length == 0) ? false : true, my_action]); + c(['ok', JSON.stringify(my_cf_collection), JSON.stringify(my_cf_ignore), my_action]); } if (a[0] == 'erosman') { my_cf_collection = []; c(['destroy']); } - if (a[0] == 'bi') { - if (a[1] == 'y') { - known_cf_domains = cfdomains; - } else { - known_cf_domains = []; - } - c(['ok']); - } if (a[0] == 'ta') { if (a[1] == '0') { my_action = 0; diff --git a/addon_firefox/bcma/manifest.json b/addon_firefox/bcma/manifest.json index 9f16c6230..8762027bd 100644 --- a/addon_firefox/bcma/manifest.json +++ b/addon_firefox/bcma/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 2, "name": "Block Cloudflare MITM Attack", "description": "Submit to global surveillance or resist. The choice is yours.", - "version": "1.0.1905.1", + "version": "1.0.1906.1", "author": "Project BCMA", "homepage_url": "https://trac.torproject.org/projects/tor/ticket/24351", "permissions": [ diff --git a/addon_firefox/bcma/mydata.html b/addon_firefox/bcma/mydata.html index 1894e2b5b..060db731b 100644 --- a/addon_firefox/bcma/mydata.html +++ b/addon_firefox/bcma/mydata.html @@ -4,12 +4,8 @@ - Temporary configurations + Temporary configurations
- ☞ Built-in Cloudflare list (.com only) (powered by Searxes)
- (Default)
-
-
♞ Take Action


@@ -17,7 +13,7 @@

✍ Your Cloudflare Domain collection (Last 500)
- (please share with cloudflare-tor@notabug)
+ (please share with cloudflare-tor@crimeflare)

diff --git a/addon_firefox/bcma/mydata.js b/addon_firefox/bcma/mydata.js index cc255e7e6..f39e36225 100644 --- a/addon_firefox/bcma/mydata.js +++ b/addon_firefox/bcma/mydata.js @@ -7,14 +7,7 @@ document.addEventListener('DOMContentLoaded', function () { if (r[0] == 'ok') { document.getElementById('t').value = JSON.parse(r[1]).join("\n"); document.getElementById('g').value = JSON.parse(r[2]).join("\n"); - if (r[3]) { - document.getElementById('bi0').checked = true; - document.getElementById('bi1').checked = false; - } else { - document.getElementById('bi0').checked = false; - document.getElementById('bi1').checked = true; - } - switch (r[4]) { + switch (r[3]) { case 1: document.getElementById('ta0').checked = false; document.getElementById('ta1').checked = true; @@ -67,16 +60,6 @@ document.getElementById('clr').addEventListener('click', function () { document.getElementById('t').value = ''; }, onError); }); -document.getElementById('bi0').addEventListener('click', function () { - if (this.checked) { - browser.runtime.sendMessage(['bi', 'y']).then(function (r) {}, onError); - } -}); -document.getElementById('bi1').addEventListener('click', function () { - if (this.checked) { - browser.runtime.sendMessage(['bi', 'n']).then(function (r) {}, onError); - } -}); document.getElementById('ta0').addEventListener('click', function () { if (this.checked) { browser.runtime.sendMessage(['ta', '0']).then(function (r) {}, onError); diff --git a/addon_firefox/bcma/style.css b/addon_firefox/bcma/style.css index 31782bd29..e66a29e93 100644 --- a/addon_firefox/bcma/style.css +++ b/addon_firefox/bcma/style.css @@ -13,7 +13,8 @@ button { border: 0; overflow: hidden; outline: none; - outline-style: none + outline-style: none; + cursor: pointer } body {