Allow block sites based on sha256 hashed address

This commit is contained in:
shortcutme 2018-11-29 14:32:55 +01:00
parent 0157ade1c9
commit 3923f2baf4
No known key found for this signature in database
GPG key ID: 5B63BAE6CB9613AE
2 changed files with 18 additions and 2 deletions

View file

@ -1,6 +1,7 @@
import time import time
import re import re
import cgi import cgi
import hashlib
from Plugin import PluginManager from Plugin import PluginManager
from Translate import Translate from Translate import Translate
@ -187,7 +188,8 @@ class UiRequestPlugin(object):
if self.server.site_manager.isDomain(address): if self.server.site_manager.isDomain(address):
address = self.server.site_manager.resolveDomain(address) address = self.server.site_manager.resolveDomain(address)
if filter_storage.isSiteblocked(address): address_sha256 = "0x" + hashlib.sha256(address).hexdigest()
if filter_storage.isSiteblocked(address) or filter_storage.isSiteblocked(address_sha256):
site = self.server.site_manager.get(config.homepage) site = self.server.site_manager.get(config.homepage)
if not extra_headers: if not extra_headers:
extra_headers = {} extra_headers = {}

View file

@ -42,6 +42,15 @@
<script type="text/javascript" src="js/ZeroFrame.js"></script> <script type="text/javascript" src="js/ZeroFrame.js"></script>
<script> <script>
function buf2hex(buffer) {
return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join('');
}
async function sha256hex(s) {
var buff = new TextEncoder("utf-8").encode(s)
return "0x" + buf2hex(await crypto.subtle.digest("SHA-256", buff))
}
class Page extends ZeroFrame { class Page extends ZeroFrame {
onOpenWebsocket () { onOpenWebsocket () {
this.cmd("wrapperSetTitle", "Visiting a blocked site - ZeroNet") this.cmd("wrapperSetTitle", "Visiting a blocked site - ZeroNet")
@ -53,8 +62,9 @@ class Page extends ZeroFrame {
} }
async updateSiteblockDetails(address) { async updateSiteblockDetails(address) {
var address_sha256 = await sha256hex(address)
var blocks = await this.cmdp("siteblockList") var blocks = await this.cmdp("siteblockList")
if (blocks[address]) { if (blocks[address] || blocks[address_sha256]) {
block = blocks[address] block = blocks[address]
} else { } else {
var includes = await this.cmdp("filterIncludeList", {all_sites: true, filters: true}) var includes = await this.cmdp("filterIncludeList", {all_sites: true, filters: true})
@ -63,6 +73,10 @@ class Page extends ZeroFrame {
var block = include["siteblocks"][address] var block = include["siteblocks"][address]
block["include"] = include block["include"] = include
} }
if (include["siteblocks"][address_sha256]) {
var block = include["siteblocks"][address_sha256]
block["include"] = include
}
} }
} }