Cli: [FRAGE] --ignore-scripts nur aus Sicherheitsgründen?

Erstellt am 29. Nov. 2019  ·  4Kommentare  ·  Quelle: npm/cli

An vielen Stellen wird aus Sicherheitsgründen das Setzen von Ignore-Skripten für die globale Konfiguration empfohlen.
Dies soll verhindern, dass Pakete von Drittanbietern beliebigen Code ausführen.

Das Problem ist, dass die Einstellung dazu geführt hat, dass keine Skripte ausgeführt werden, einschließlich von npm run ...
Ich sehe auch keine Warnungen beim Ausführen von npm run ... mit Ignore-Scripts aktiviert.

Gibt es eine Möglichkeit, Skripte nur aus Sicherheitsgründen zu ignorieren?

Question

Alle 4 Kommentare

Wie würde npm zwischen sicheren und unsicheren Skripten unterscheiden?

Wenn dies möglich wäre, warum wäre dann eine Einstellung erforderlich, um die unsicheren zu ignorieren?

Es würde nicht zwischen sicheren und unsicheren Skripten unterscheiden.
Es würde einfach Skripte zulassen, wenn ein npm-Befehl auf dem obersten Modul verwendet wird.
Da der Eigentümer kein Dritter ist, kann davon ausgegangen werden, dass er vertrauenswürdig ist.

Verstanden, das macht Sinn. Ich habe das nie als globale Konfigurationseinstellung festgelegt, aber npm run brechen wäre ziemlich frustrierend gewesen.

Ich habe ignore-scripts auf true gesetzt und war enttäuscht, als ich feststellte, dass npm start in meinem Projekt ohne jegliche Ausgabe nicht mehr funktionierte.

Ich möchte die Sicherheit von Ignore-Skripten, insbesondere um Post-Install-Skripte zu deaktivieren, aber in der Lage sein, meine eigenen Skripte und Skripte von Drittanbietern nur explizit mit npm start oder npm run auszuführen. Jedes Mal, wenn ich ein Paket hinzufügen möchte, --ignore-scripts hinzufügen zu müssen, ist ziemlich zerbrechlich, da man es nur einmal vergessen muss und man durch eine tief verborgene Abhängigkeit von Drittanbietern stillschweigend kompromittiert werden kann.

Im Allgemeinen glaube ich fest, dass das Standardverhalten von npm cli gefährlich ist und auf die eine oder andere Weise geändert werden muss. Zum Beispiel könnte npm mich auffordern, bevor ein Skript ausgeführt wird, es sei denn, es wird ausdrücklich angefordert oder auf die Whitelist gesetzt.

Mein Arbeitgeber ist nicht bereit, npm mit dem aktuellen Verhalten in den Stack einzuführen, daher scheint meine einzige Option im Moment darauf zu beruhen, das Ignore-Scripts-Flag auf jeder Workstation zu setzen.

Außerdem möchte ich darauf hinweisen, dass ich mir bewusst bin, dass das Hinzufügen einer Abhängigkeit umfassendere Sicherheitsfolgen hat als Skripte, aber die Skripte sind meiner Meinung nach aus einigen Gründen besonders gefährlich. Ein bösartiges Paket in Ihrem Projekt zu haben ist so schlimm, wie es sich anhört, aber es kann zumindest noch etwas Zeit dauern, bis es seine Nutzlast ausführen kann, sodass es eine leichte Hoffnung gibt, dass es rechtzeitig abgefangen werden kann. Außerdem ist es wahrscheinlicher, dass Entwickler beim Debuggen ihres Codes einen zusätzlichen Abruf in Devtools oder ähnlichem sehen, verglichen mit der Nutzlast, die direkt auf ihren Computern ausgeführt wird und ihre Spuren verwischt. Ein einzelnes Projekt mit einem bösartigen Paket könnte potenziell die gesamte Unternehmens-IP gefährden, die nicht einmal mit dem Projekt in Zusammenhang steht. Es könnte schwierig sein, eine Verletzung bis zur Ursache des Problems zu lokalisieren oder sogar zu erkennen, dass eine Verletzung überhaupt vorliegt.

Es tut mir leid, wenn ich dieses spezielle Problem mit meinem paranoiden Gedankenüberlauf huckepack unterstütze, aber ich denke, die npm-Maintainer und die Community sollten ein ernsthaftes Gespräch über dieses Thema führen. Denke vielleicht darüber nach, wie JavaScript und npm in Dinge wie die Bytecode Alliance passen .

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen