haumacher / phoneblock

Der Spam-Filter für die Fritz!Box
https://phoneblock.net
GNU General Public License v3.0
155 stars 14 forks source link

Keine Kontaktliste nötig - SpamBlocker Android App #87

Open kefor opened 5 days ago

kefor commented 5 days ago

Ich hatte Kontakt mit dem Maintainer von Spam Blocker. Er hat eine Konfiguration für seine App zur Verfügung gestellt, die es ermöglicht, die Datenbank via API einzupflegen. Ich konnte die Datenbank erfolgreich einbinden. Hierfür gibt es eine Vorabversion zum Download (https://github.com/aj3423/SpamBlocker/actions/runs/11595592583)

Damit wäre dann die Carddev Kontakte und die Kontakte in Messengern gelöst.

Denke, die Änderungen werden im kommenden Release auch kommen.

In der App unter Einstellungen / Automatisierung (Workflows) auf Neu klicken. Und dann folgende Einstellung importieren:

Import this workflow and replace the http header Authorization with your own string, the algorithm is: base64(username:password)

{
    "id": 8,
    "desc": "PhoneBlock",
    "schedule": {
        "type": "Daily",
        "time": {
            "hour": 0,
            "min": 0
        }
    },
    "actions": [
        {
            "type": "HttpDownload",
            "url": "https://phoneblock.net/phoneblock/api/blocklist?format=xml",
            "header": "Authorization: Basic **Hier wird dein base64(username:password) Hash gebraucht**"
        },
        {
            "type": "ParseXML",
            "xpath": "//phone-info[@rating='D_POLL' or @rating='G_FRAUD' or @rating='E_ADVERTISING' or @rating='F_GAMBLE']/@phone"
        },
        {
            "type": "ConvertNumber",
            "from": "(^0+)",
            "flags": 5,
            "to": ""
        },
        {
            "type": "ImportToSpamDB"
        }
    ],
    "enabled": false,
    "workUUID": "ecb0b32a-7752-45a9-a250-de1b16b7d97d"
}

Username:Password habe ich über (https://www.base64encode.org/) encoded. Diesen dann ohne die in der passenden Config einfügen. "Authorization: Basic Hier wird dein base64(username:password) Hash gebraucht**"

Die App an sich ermöglicht noch weitere smarte Ideen, um Spam Anrufe und Spam SMS entgegenzuwirken.

Außerdem meinte er, dass er gerne die Datenbank von PhoneBlock als ein default preset in die App einpflegt, falls dies erwünscht ist.

haumacher commented 5 days ago

Das klingt vielversprechend. Allerdings hätte ich da mindestens einen Wunsch - nämlich betreffend des Abrufzeitpunktes der Blockliste. Aus der Konfiguration geht hervor, dass hier ein Zeitpunkt gewählt wird.

"time": {
    "hour": 0,
    "min": 0
}

Wenn alle Installationen denselben Zeitpunkt (z.B. 00:00 Uhr) wählen, dann kommt das einem Denial-of-Service-Angriff auf die PhoneBlock-Seite gleich, weil dann tausende Telefone gleichzeitig eine Verbindung aufbauen. Das sollte man dringend dahingehend anpassen, dass ein zufälliger Zeitpunkt in einer gewissen Zeitspanne (z.B. zwischen 22:00 und 6:00 Uhr) gewählt wird (so wie die Fritz!Box das auch macht). Damit verteilen sich die Abrufe und der Service bricht nicht zusammen.

kefor commented 4 days ago

@haumacher ich habe antwort von AJ:

I used the "Daily" schedule in that configuration, I can simply change it to "Periodically 24 hours", so it would be the time that the user enables this workflow, kinda "random". I think he should add a new API to only return the daily incremental numbers, the current API returns all numbers which is a waste of bandwidth.

Does the FRITZ!Box support incremental update?

Somit sollte, für den ersten Workaround der Periodische abgleich nach Verwendung der Config helfen. Wobei er selbst inkrementellen API abgleich empfiehlt.

haumacher commented 17 hours ago

Eine API, mit der man nur die Änderungen an der Blockliste abrufen kann gibt es noch nicht - aber das ist sicher eine sinnvolle Erweiterung und würde auch Bandbreite einsparen. In das CardDAV-Protokoll ist das eingebaut, aber die Fritz!Box nutzt das nicht, sondern ruft auch immer die komplette Liste ab. Ist aber "nur" eine Optimierung...

Was aber bei so einer App noch richtig cool wäre, wenn man 1-Click eine Nummer, die einen doch noch angerufen hat an PhoneBlock als SPAM zurückmelden könnte... und wenn die App alle geblockten Anrufe ebenfalls an PhoneBlock zurückmelden würde, damit PhoneBlock eine bessere Einschätzung über die Aktivität von SPAM-Nummern erhalten würde - und so eine bessere Zusammenstellung von Nummer für Fritz!Box-Blocklisten machen könnte.