[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Seltsames Verhalten von echo


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Ganz lieben Dank an Markus und Thomas!

Das hat mir sehr geholfen.
Bzgl. Sicherheit. Das Skript nutzt nur Dateien, die ich selbst ueber
Dropbox in ein Verzeichnis stecke und kombiniert diese zu einem
Gesamt-PDF nach Entfernung evtl. PDF-Sperren. Ein Nutzer kann das Skript
nur ueber einen Button ueber ein PHP-Skript aufrufen und bekommt dann
einen Link um die Fertige Datei herunterzuladen. Es wird nichts ueber den
Browser uebergeben, von daher denke ich reicht das fuer meine Zwecke, oder
habe ich dennoch ein Scheunentor geoeffnet?

Nochmals lieben Dank!
Gruesse und schoenes WE
 Stephan

Am 20.05.2011 15:44, schrieb Thomas Stiefel:
> Markus Demleitner schrieb am 20.05.2011 08:03:
> 
>> richtige Frage: "*Welches* echo verhaelt sich, na ja, komisch?".
>>
>> Waehrend naemlich echo (1), also in der Regel /bin/echo in der Manpage
>> sagt
>>
>>     -E     disable interpretation of backslash escapes (default)
>>
>> ist das, was du bekommst, wenn du dein Skript so schreibst, wie du es
>> schreibst, das bash-builtin.  Ueber das erfaehrt man in help echo:
>>
> Es ist definitiv ein Quoting Problem und es wird auch ziemlich sicher
> das bash-builtin verwendet - ausser Du hast im Script ein echo definiert,
> aber danach sieht es nicht aus.
> Ansonsten gilt immer folgende Reihenfolge:
> 
> shell-builtin > Alias > Binary (je nach PATH-Reihenfolge)
> 
> Wenn du es genau wissen willst, dann liefert dir das der Befehl "type
> echo". Hier ein kleines Beispiel dazu:
> 
> $  type echo; alias echo='/bin/echo'; type echo; unalias echo; type echo
> echo is a shell builtin
> echo ist ein Alias von `/bin/echo'.
> echo is a shell builtin
> 
>> Es gibt viele Moeglichkeiten, das zu fixen (%s#echo#/bin/echo im vi
>> ist eine davon), aber ich wuerde wahrscheinlich zu einem Here-document
>> raten, so wie das gemacht ist.  
>>
> Du koenntest also zuerst mal versuchen alle echo-Aufrufe in deinem Script
> durch "echo -E" zu ersetzen.
> 
> Da in den Beispiel bei den viele Zeilen fast alles bleiben soll wie es
> ist und nur in einer Zeile variabler Text ($1) auftaucht wuerde ich auch
> das Here-Dokument oder gleich ein externes File mit dem Text erstellen,
> dort einen Platzhalter (z. B. "_TEXT1_") einbauen und nur diesen mit sed
> durch den Inhalt von $1 ersetzen lassen. Also etwa so:
> 
> TEXTEMPLATE="create.tpl"
> CREATETEX="create.tex"
> 
> createtitle()
> {
> cat $TEXTEMPLATE | sed ...
> }
> 
>> Aber zwecks due diligence: Shellskripts als CGI-Backends verlangen
>> viel Sorgfalt bei der Input-Validierung, und wenn du Eingaben aus dem
>> Netz in TeX uebernimmst, solltest du dran denken, dass TeX
>> Turing-vollstaendig ist und Zugriff auf dein Dateisystem hat.
>>
> FULL ACK!
> Wenn das wirklich von Webserver aufgerufen wird, dann wuerde ich lieber
> versuchen das durch Systemaufrufe in PHP direkt zu handlen oder noch
> besser das Ganze mit Perl abbilden.
> 
> Gruss Tom
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJN1n5rAAoJEFvfAe9k38dfw4cH/01De5HAJAKL4sGUdtXWddGk
JqMWR8gUt19SvRh/0kk0DuvAy2lHSemRWeJj2nybnXi0boNpf0wth0rNgCWGkpz9
S7k2FXsbT90oFKam5gUE6hFfHXwha2qFCRIWp60CojloWMlCabdNcRrtLq9KRf7H
FITV9IRg5QLk2DB4oFm+zGYNdTe6+jmnITl3g/o9GZ1dKM6c8BiLsoop3vcuM8U0
hg4Dbq0qI5Hop9o4/Ywy/X98wq3q2LaylTMpH9Wz2ndW29od8uiiXyAbdJ07HY97
sdYqnsUeEZhzDn5QBlPTNQiOFzDVWXRjFIFzlbC7ZPIVOLTE0t8sKAXKmsaW1P8=
=bgNt
-----END PGP SIGNATURE-----
-- 
UUGRN e.V. http://www.uugrn.org/
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/