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 re
import cgi
import hashlib
from Plugin import PluginManager
from Translate import Translate
@ -187,7 +188,8 @@ class UiRequestPlugin(object):
if self.server.site_manager.isDomain(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)
if not extra_headers:
extra_headers = {}

View File

@ -42,6 +42,15 @@
<script type="text/javascript" src="js/ZeroFrame.js"></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 {
onOpenWebsocket () {
this.cmd("wrapperSetTitle", "Visiting a blocked site - ZeroNet")
@ -53,8 +62,9 @@ class Page extends ZeroFrame {
}
async updateSiteblockDetails(address) {
var address_sha256 = await sha256hex(address)
var blocks = await this.cmdp("siteblockList")
if (blocks[address]) {
if (blocks[address] || blocks[address_sha256]) {
block = blocks[address]
} else {
var includes = await this.cmdp("filterIncludeList", {all_sites: true, filters: true})
@ -63,6 +73,10 @@ class Page extends ZeroFrame {
var block = include["siteblocks"][address]
block["include"] = include
}
if (include["siteblocks"][address_sha256]) {
var block = include["siteblocks"][address_sha256]
block["include"] = include
}
}
}