From fb0140a62bdfd158b27f431444c20c804cd83d87 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 22 Nov 2018 21:43:16 +0000 Subject: [PATCH 1/4] Checking for blocked user does now check for blocked domain as well --- src/Model/Contact.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 1c90d0c815..6d435c81c0 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -1285,10 +1285,15 @@ class Contact extends BaseObject return false; } - $blocked = DBA::selectFirst('contact', ['blocked'], ['id' => $cid]); + $blocked = DBA::selectFirst('contact', ['blocked', 'url'], ['id' => $cid]); if (!DBA::isResult($blocked)) { return false; } + + if (Network::isUrlBlocked($blocked['url'])) { + return true; + } + return (bool) $blocked['blocked']; } From ba1e385f86405d7e86f85fa166c374829bf440b5 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 22 Nov 2018 22:09:22 +0000 Subject: [PATCH 2/4] Don't deliver to blocked domains --- src/Worker/Delivery.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Worker/Delivery.php b/src/Worker/Delivery.php index 3ae0be140d..0d56bfa5d1 100644 --- a/src/Worker/Delivery.php +++ b/src/Worker/Delivery.php @@ -19,6 +19,7 @@ use Friendica\Protocol\DFRN; use Friendica\Protocol\Diaspora; use Friendica\Protocol\Email; use Friendica\Util\Strings; +use Friendica\Util\Network; require_once 'include/items.php'; @@ -158,6 +159,10 @@ class Delivery extends BaseObject return; } + if (Network::isUrlBlocked($contact['url'])) { + return; + } + // Transmit via Diaspora if the thread had started as Diaspora post // This is done since the uri wouldn't match (Diaspora doesn't transmit it) if (isset($parent) && ($parent['network'] == Protocol::DIASPORA) && ($contact['network'] == Protocol::DFRN)) { From 2f7b138b0936354792b1844f0ece2815612c970e Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 22 Nov 2018 22:23:31 +0000 Subject: [PATCH 3/4] Block AP delivery --- src/Protocol/ActivityPub/Transmitter.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Protocol/ActivityPub/Transmitter.php b/src/Protocol/ActivityPub/Transmitter.php index 64b98e17e7..c0640480eb 100644 --- a/src/Protocol/ActivityPub/Transmitter.php +++ b/src/Protocol/ActivityPub/Transmitter.php @@ -27,6 +27,7 @@ use Friendica\Protocol\ActivityPub; use Friendica\Protocol\Diaspora; use Friendica\Core\Cache; use Friendica\Util\Map; +use Friendica\Util\Network; require_once 'include/api.php'; @@ -446,6 +447,10 @@ class Transmitter $contacts = DBA::select('contact', ['url'], $condition); while ($contact = DBA::fetch($contacts)) { + if (Network::isUrlBlocked($contact['url'])) { + continue; + } + $profile = APContact::getByURL($contact['url'], false); if (!empty($profile)) { if (empty($profile['sharedinbox']) || $personal) { From ea5ba309dc788eb931d77151472b8aa1e0480f7d Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 22 Nov 2018 22:31:48 +0000 Subject: [PATCH 4/4] Some more AP blocking --- src/Protocol/ActivityPub/Transmitter.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Protocol/ActivityPub/Transmitter.php b/src/Protocol/ActivityPub/Transmitter.php index c0640480eb..22c8a3518e 100644 --- a/src/Protocol/ActivityPub/Transmitter.php +++ b/src/Protocol/ActivityPub/Transmitter.php @@ -498,6 +498,10 @@ class Transmitter $blindcopy = in_array($element, ['bto', 'bcc']); foreach ($permissions[$element] as $receiver) { + if (Network::isUrlBlocked($receiver)) { + continue; + } + if ($receiver == $item_profile['followers']) { $inboxes = array_merge($inboxes, self::fetchTargetInboxesforUser($uid, $personal)); } else {