JavaScript

Kolumne: News.JS

News.JS: Von der Sicherheitsfrage auf npm bis zum Spiel – Neues aus der JavaScript-Welt
Keine Kommentare

Wie soll npm mit Eigentümerwechseln bei Packages umgehen? Diese Frage wird seit dem Drama um event-stream diskutiert und wurde gerade wieder aktuell. Außerdem in den News.JS: Spielen mit JavaScript und den Nutzer-Input automatisch auf NSFW-Inhalte prüfen.

JavaScript-Entwickler werden sich erinnern: event-stream wurde im vergangenen Jahr durch einen neuen Maintainer mit Schadcode infiziert. Das Problem blieb lange unentdeckt und führte nicht nur zu einer weitreichenden Reinigungsaktion bei vielen Projekten, sondern auch zu großen Diskussionen im Netz: Wie geht man mit den zahlreichen kleinen Packages um, die auf npm bereitstehen – wie sicher ist es, mit npm-Packages anonymer und unbekannter Entwickler zu arbeiten?

npm-Packages: Major-Versionen für neue Mitarbeiter?

npm hat nun eine neue Idee präsentiert, um die Sicherheit von Packages nach einem Wechsel der Maintainer zu erhöhen. Wenn sich der Eigentümer eines Packages ändert, könnte das nachfolgende npm-Release künftig automatisch als Major-Version markiert werden. Major-Versionen sind im Rahmen der semantischen Versionierung grundsätzlich mit Breaking Changes assoziiert. Viele Entwickler installieren diese Updates darum nicht ungeprüft. Verändert sich hingegen nur die zweite oder dritte Ziffer der Versionsnummer, gilt das im Rahmen der semantischen Versionierung als Zeichen dafür, dass keine negativen Auswirkungen auf bestehenden Code zu erwarten sind.

Die Malware in event-stream wurde in einem Minor-Release veröffentlicht – dem ersten, das ein neuer Maintainer auf npm zur Verfügung stellte. Mit einem Major Release hätte sich der Schadcode, so die Hoffnung von npm, nicht so weit verbreiten können. Alle Probleme löst das aber auch nicht: So wurde kurz nach dem infizierten Release eine Major-Version von event-stream veröffentlicht, die keinen Schadcode mehr enthielt, aber von vielen Entwicklern eben nicht installiert wurde. Das trug dazu bei, dass die Malware lange in vielen Projekten enthalten blieb. Ein Minor-Update ohne Malware wäre wohl häufiger heruntergeladen worden.

Das gleiche Problem mit den Downloadzahlen könnte aber auch anders herum entstehen., wenn ein neuer Maintainer einen sicherheitsrelevantesn Bugfix ausspielen möchte. Behebt ein neuer Maintainer einen schweren Fehler, könnte das Update weniger beachten bekommen als in einer Minor-Version. Auch die Nummerierung der Versionen könnte zur Hürde für große Projekte werden: Hier könnten schnell Versionsnummern in den hunderten entstehen. Ob das hilft, oder ob es nur die semantische Versionierung verwässert, ist fraglich. Noch wurde diese Idee aber auch gar nicht umgesetzt, sondern steht im npm.Community-Forum zur Diskussion.

Untrusted – Spiel und Spaß mit JavaScript

Nicht allzu vertrauenswürdig klingt auch der Name Untrusted. Gemeint sind aber keine wenig vertrauenswürdigen npm-Packages. Es geht um ein Spiel: „Untrusted —or— the Continuing Adventures of Dr. Eval“. Hier wird JavaScript auf die Meta-Ebene gehoben, wie die GitHub-Beschreibung sagt. Der Spielecod ist in JavaScript geschrieben und muss verändert werden, um die Level zu lösen. Das Konzept der ersten Level ist das eines klassischen Escape-the-Room-Spiels, bei dem der Spieler in Untrusted Änderungen am Programmcode vornehmen muss um fliehen zu können. Entwickelt wurde das Spiel von Alex Nisnevich and Greg Shuflin. Wer im Lösen der Aufgaben im Spiel nicht genug Herausforderungen findet, kann außerdem eigene Level hinzufügen. Das Spiel steht online bereit, kann aber auch auf dem eigenen Server betrieben werden.

NSFW – die KI übernimmt die Drecksarbeit

Ob man während der Arbeitszeit Levels für ein Spiel schreiben sollte, ist natürlich ganz vom eigenen Chef abhängig, aber nicht unbedingt zu empfehlen. Es geht jedoch noch schlimmer: Wer sogenannte NSFW-Inhalte (Not Safe For Work) am Arbeitsrechner öffnet, gerät schnell in Erklärungsnot. Was aber, wenn es sich um Nutzereingaben handelt, die man nur aussortieren wollte? Diese schmutzige Arbeit übernimmt jetzt die KI für den gebeutelten Entwickler: NSFW.js arbeitet mit TensorFlow.js und sortiert Dateien automatisch aus, wenn sie von Nutzern hochgeladen werden. Dazu stehen fünf Kategorien von unbedenklich bis höchst bedenklich zur Verfügung. Neben der Filterung vor dem Upload können damit auch Dateien gefiltert werden, die bereits hochgeladen wurden. Das soll beispielsweise einsetzbar sein, um eine Warnung vor die Anzeige von möglicherweise problematischem Material zu schalten. Wie das Setup erfolgt und was genau gefiltert wird, hat Gant Laborde zusammengefasst. Auf der Website zu NSFW.js lässt sich das Tool außerdem live testen. Auf eigene Gefahr!

 

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -