von gast » Fr 24. Jul 2020, 12:16
MoeWe hat geschrieben: ↑Fr 24. Jul 2020, 11:50
Viel wichtiger ist aber Nachteil 2: **Mit `--shell-escape` kann TeX beliebige Kommandozeilenbefehle ausführen. Das ist natürlich ein recht erhebliches Sicherheitsrisiko.**
Wenn man solche Herunterladeaktionen aus dem Dokument heraus auslöst, sollte man auch unbedingt den Zieldateinamen explizit angeben. Sonst kann nämlich per Umleitung/link rewrite statt einer Datei blumentopf.png auch ganz schnell die Datei article.cls im aktuellen Verzeichnis landen. Und darin kann dann jede beliebige Sauerei angestellt werden.
Im ersten Beispiel wird das bei https://tex.stackexchange.com/a/331113/35864 auch nicht beachtet. Dort fehlt beim Aufruf von wget option -O mit Angabe einer Zieldatei.
Der Nachteil, die Zieldatei explizit anzugeben ist, dass wenn man stattdessen eine Fehlerseite bekommt, diese ebenfalls unter dem Namen gespeichert wird. Es kann also passieren, dass die Datei dann nicht in der Form weiterverarbeitet werden kann, die man erwartet. Das kann die Fehlersuche ganz schön erschweren.
Man kann wget, curl etc. auch in ein Verzeichnis schreiben lassen, das beim LaTeX-Lauf nicht durchsucht wird und von dort dann nur die erwartete Datei an das wirkliche Ziel verschieben, wenn diese tatsächlich geliefert wurde. Das (temporäre) Verzeichnis kann man dann löschen und wird so eventuelle Risiken los. Das verkompliziert den ganzen Prozess natürlich, erlaubt dafür aber auch sinnvolle Fehlerreaktionen, wenn der Download schief geht.
Ich würde aber empfehlen, das nicht wirklich in den LaTeX-Lauf zu integrieren, sondern eher in den build-Prozess. Manche Editoren bieten dafür Pre-Scripte. Für arara und ähnliche Programme könnte man sich passende Befehle/Module/Regeln definieren. Per PowerShell, Batch, Shell-Script etc. ist es ebenfalls kein großes Problem.
[quote=MoeWe post_id=112128 time=1595584239 user_id=8602]
Viel wichtiger ist aber Nachteil 2: **Mit `--shell-escape` kann TeX beliebige Kommandozeilenbefehle ausführen. Das ist natürlich ein recht erhebliches Sicherheitsrisiko.**[/quote]
Wenn man solche Herunterladeaktionen aus dem Dokument heraus auslöst, sollte man auch unbedingt den Zieldateinamen explizit angeben. Sonst kann nämlich per Umleitung/link rewrite statt einer Datei [tt]blumentopf.png[/tt] auch ganz schnell die Datei [tt]article.cls[/tt] im aktuellen Verzeichnis landen. Und darin kann dann jede beliebige Sauerei angestellt werden.
Im ersten Beispiel wird das bei https://tex.stackexchange.com/a/331113/35864 auch nicht beachtet. Dort fehlt beim Aufruf von [tt]wget[/tt] option [tt]-O[/tt] mit Angabe einer Zieldatei.
Der Nachteil, die Zieldatei explizit anzugeben ist, dass wenn man stattdessen eine Fehlerseite bekommt, diese ebenfalls unter dem Namen gespeichert wird. Es kann also passieren, dass die Datei dann nicht in der Form weiterverarbeitet werden kann, die man erwartet. Das kann die Fehlersuche ganz schön erschweren.
Man kann [tt]wget[/tt], [tt]curl[/tt] etc. auch in ein Verzeichnis schreiben lassen, das beim LaTeX-Lauf nicht durchsucht wird und von dort dann nur die erwartete Datei an das wirkliche Ziel verschieben, wenn diese tatsächlich geliefert wurde. Das (temporäre) Verzeichnis kann man dann löschen und wird so eventuelle Risiken los. Das verkompliziert den ganzen Prozess natürlich, erlaubt dafür aber auch sinnvolle Fehlerreaktionen, wenn der Download schief geht.
Ich würde aber empfehlen, das nicht wirklich in den LaTeX-Lauf zu integrieren, sondern eher in den build-Prozess. Manche Editoren bieten dafür Pre-Scripte. Für [ctan]arara[/ctan] und ähnliche Programme könnte man sich passende Befehle/Module/Regeln definieren. Per PowerShell, Batch, Shell-Script etc. ist es ebenfalls kein großes Problem.