Testen von Mailanwendungen

Durch den Einsatz von CSS ist es möglich, Nutzer eindeutig zu identifizieren. Unabhängig davon, ob die Nutzung von Cookies weiterhin reguliert oder verboten werden, zeichnet sich bereits ab, dass Nachfolgetechnologien bereitstehen, um ähnliche Funktionen zu übernehmen. Annabelle Theobald schreibt in »Digitaler Fingerabdruck: CSS eröffnet neue Möglichkeiten zum Nutzer:innen-Tracking« für idw-online.de Noch spannender war für ihn aber das Testen von Mailanwendungen. Denn während JavaScript von vielen Mailclients standardmäßig blockiert wird, ist der Einsatz von CSS bislang nicht begrenzt. „Wir haben 21 Mailclients untersucht, darunter sowohl Android- und iOS- als auch Desktop und Web-Clients. In neun Fällen konnten wir alle unsere Techniken erfolgreich einsetzen und so Informationen über die Nutzenden sammeln. 18 der 21 Mailclients davon waren für mindestens eine bestimmte Technik anfällig“, erklärt ...

4. Januar 2025 · 1 Minute · 122 Wörter

Phishing-Attacke auf Maintainer

Dennis Schirrmacher schreibt in »Supply-Chain-Attacke: Solana web3.js-Bibliothek war mit Schadcode verseucht« für heise.de Wer jüngst das JavaScript SDK web3.js von Solana aus dem Paketmanager npm heruntergeladen hat, hat sich unter Umständen Schadcode eingefangen. Der Ursprung ist wahrscheinlich eine Phishing-Attacke auf Maintainer der Bibliothek.

6. Dezember 2024 · 1 Minute · 43 Wörter

Pinkary

Eine interessante Alternative zu Linktree und eine Art Mini-Twitter bietet »Pinkary«. Diese quelloffene Lösung basiert auf PHP und JavaScript. Der Quellcode sowie eine engagierte Community befinden sich auf GitHub.

2. November 2024 · 1 Minute · 29 Wörter

Bookmarklet Blogging

Kürzlich bin ich auf ein spannendes Bookmarklet bei Nicolas gestoßen. Es soll das Link-Blogging für alle erleichtern, die ein auf GitHub gehostetes Blog haben. Das Skript ist zwar noch nicht ganz perfekt, aber es hat mich dazu inspiriert, es weiterzuentwickeln. Hier ist meine Version des Bookmarklets (function() { // Funktion zum Erstellen eines "Slug" aus einem Text const slugify = text => { let str = text.toString(); // Den Text als Zeichenkette behandeln str = str.replaceAll("/", " "); // Schrägstriche (/) durch Leerzeichen ersetzen str = str.normalize("NFD"); // Unicode normalisieren (diakritische Zeichen trennen) str = str.replace(/[^\w\s-]+/g, ""); // Sonderzeichen entfernen (außer Buchstaben, Zahlen, Leerzeichen, Bindestriche) str = str.toLowerCase(); // In Kleinbuchstaben umwandeln str = str.replace(/\s+/g, " "); // Mehrere Leerzeichen auf ein einzelnes reduzieren str = str.trim(); // Führende und endende Leerzeichen entfernen str = str.replace(/ +/g, "-"); // Alle Leerzeichen durch Bindestriche ersetzen return str; // Slug zurückgeben }; // Titel der aktuellen Seite aus dem Dokument abrufen let pageTitle = window.document.title; // Falls ein Text markiert ist, diesen als "linkSelection" setzen, ansonsten leer let linkSelection = "getSelection" in window ? window.getSelection().toString().trim() : ""; // Inhalt für den Link ermitteln: // Zuerst den markierten Text verwenden, falls vorhanden, ansonsten eine Meta-Beschreibung, // oder den ersten Absatz im <main>, <article>, oder <p>-Tag let linkContent = linkSelection || window.document.querySelector("head meta[name=description]")?.content.trim() || window.document.querySelector("main p")?.textContent.trim() || window.document.querySelector("article p")?.textContent.trim() || window.document.querySelector("p")?.textContent.trim(); // Die URL der aktuellen Seite let linkUrl = window.location.href; // Eingabeaufforderung für den Link-Titel (Standardwert: Seiten-Titel) let title = window.prompt("Title of the link?", pageTitle); if (title !== null) { // Nur fortfahren, wenn der Benutzer einen Titel angegeben hat // Eingabeaufforderung für den Link-Slug (Standardwert: aus Titel generierter Slug) let slug = window.prompt("Slug of the link?", slugify(title)); if (slug !== null) { // Nur fortfahren, wenn der Benutzer einen Slug angegeben hat // Das aktuelle Datum und die Uhrzeit im ISO-Format abrufen und in lesbare Form bringen const currentDate = (new Date()).toISOString().replace("T", " ").replace(/\.\d{3}Z/, " +00:00"); // Dateiinhalt für den Blogeintrag erstellen let fileContent = `---\n` + `date: ${currentDate}\n` + `title: "${title}"\n` + `authors: "maik"\n` + `tags: []\n` + `---\n\n` + `[${title}](${linkUrl} "${title}") für ${linkUrl}\n\n` + `${linkContent ? linkContent.replaceAll("\n", "\n> ") : ""}\n`; // GitHub-URL für das Erstellen einer neuen Datei zusammenbauen let githubUrl = `https://github.com/Maik-Wi/blog/new/main/?` + `filename=${`content/notes/${currentDate.slice(0, 10)}-${slug}-index.md`}` + `&value=${encodeURIComponent(fileContent)}` + `&message=${encodeURIComponent(`New link: ${title}`)}`; // Die URL in einem neuen Fenster öffnen, sodass der Nutzer sie bei GitHub weiterbearbeiten kann window.open(githubUrl); } } })();

19. August 2024 · 2 Minuten · 403 Wörter

400.000

Hier die Kurzbeschreibung des Supply-Chain-Angriffs: Die Open-Source-Bibliothek Polyfill wurde verwaist, und die Domain Polyfill.io wurde nicht verlängert. Chinesische Angreifer nutzten die Gelegenheit, kauften die Domain und übernahmen somit das Repository. Daraufhin schlichen sie fast unbemerkt Schadcode ein und rollten diesen aus. Marc Stöck schreibt in »Fast 400.000 Webhosts verbreiten Malware via Polyfill.io« für golem.de: Ende Juni warnten Sicherheitsforscher von Sansec vor einem Supply-Chain-Angriff über das weitverbreitete JavaScript-Projekt Polyfill.io, das im Februar von einem chinesischen Unternehmen namens Funnull übernommen wurde. Weitere Untersuchungen von Censys zeigen nun, dass derzeit fast 400.000 Hosts von dem Projekt Gebrauch machen. Ein Großteil davon befindet sich in Deutschland. ...

7. Juli 2024 · 1 Minute · 112 Wörter