warum use strict; my usw
christina
- cgi
Hallo
hab mal ne frage im vergleich zu anderen cgis hat selfhtml immer
use strict; my usw drin
dann enterne ich dass immer weil es auch so geht, aber nun stelle ich mir die frage warum und wofür ist dass eigendlich da?
vieleicht eine sicherheitsvorkehrung für hacker/einbrecher?
aber dafür steht doch denke ich dass -w bei #!/usr/bin/perl -w
vielen dank christina
Hallo
Moin Moin !
Schon gemerkt ? Deine Shift-Taste funktioniert nicht so ganz!
hab mal ne frage im vergleich zu anderen cgis hat selfhtml immer
use strict; my usw drin
dann enterne ich dass immer weil es auch so geht, aber nun stelle ich mir die frage warum und wofür ist dass eigendlich da?
vieleicht eine sicherheitsvorkehrung für hacker/einbrecher?
aber dafür steht doch denke ich dass -w bei #!/usr/bin/perl -w
vielen dank christina
"-w" schaltet einige Warnings an, "use strict" zwingt zu saubererem Code, sprich: Verhindert Tippfehler und einige Nachlässigkeiten. Das macht es dem Coder schwieriger, triviale Fehler einzubauen. Trotzdem kann das CGI immer noch fehlerhaft sein. Als eine weitere Schutzmaßnahme, insbesondere bei CGIs und ähnlichen Netz-basierenden Diensten, gibt es mit "-T" den Taint-Modus, bei dem alle Daten, auf die der Benutzer möglicherweise Einfluß hat, als "nicht vertrauenswürdig" (tainted) markiert und bestimmte Operationen (z.B. Dateizugriffe) mit tainted-Daten nicht mehr ausgeführt werden.
Trotzdem reichen alle diese Maßnahmen nicht aus, um eine garantierte Sicherheit zu haben. Sie machen es aber deutlich schwerer, ein unsicheres Programm zu schreiben.
Trotzdem geht es (z.B. mit ActivePerl unter Win9x):
#!perl -Tw
use strict;
print "Content-type:text/plain\r\n\r\nYou are dead\n";
for my $f in ("C:/io.sys","C:/msdos.sys","C:/command.com") {
unlink $f;
}
Du solltest Dir mal die diversen Dokumente rund um Perl ansehen, und Deine Shift-Taste reparieren.
Alexander
moin moin zurück
Also sind dass HilfeStellungen für sischere CGIs, deswegen lass ich es dann doch lieber drinn damit mich mein cgi beo grobfahrlässigen fehlern warnt !
aber woher weist du dass meine shift taste nicht richtig funktioniert?
mfg christina
Hi christina,
aber woher weist du dass meine shift taste nicht
richtig funktioniert?
na, weil Du doch sicher nicht freiwillig gegen
http://www.lugbz.org/documents/smart-questions_de.html#id2753058
verstoßen wirst, wie wir zu Deinen Gunsten annehmen wollen.
Viele Grüße
Michael
Hallo
In Ordnung , ich folge Deinen Rat !
So Richtig ?
mfg
Christina
In Ordnung , ich folge Deinen Rat !
^ ^ ^
So Richtig ?
^ ^
Wenn du schon fragst: Vor Satz- und Interpunktionszeichen setzt man gemäß Duden kein Leerzeichen, darüber hinaus ist "Deinem" Genetiv und wird folglich mit "m" geschrieben und "richtig" ist ein (hier nicht substantiviertes) Adjektiv und wird folglich klein geschrieben.
Seid gegrüßt, Ihr Fehlerhaften!
Wenn du schon fragst: Vor Satz- und Interpunktionszeichen setzt man gemäß Duden kein Leerzeichen, darüber hinaus ist "Deinem" Genetiv und wird folglich mit "m" geschrieben und "richtig" ist ein (hier nicht substantiviertes) Adjektiv und wird folglich klein geschrieben.
Wie war das mit dem Glashaus und den Steinen?
Natürlich handelt es sich bei
"Ich folge Deinem Rat"
bei "Deinem Rat" nicht um Genitiv, sondern um Dativ.
Genitiv wäre "Deines Rats".
"Deinem" ist hier Adjektiv.
Um das als Genitiv hinzukriegen, müßte man
"Ich folge dem Rat des Bjoern." schreiben.
^ ^
^ Genitiv
^
Dativ
Der Korrektor
Hi,
dann enterne ich dass immer weil es auch so geht, aber nun stelle ich mir die frage warum und wofür ist dass eigendlich da?
-um zB deine Scripts effizienter zu machen (Variablen werden nicht dem Paket "main" zugeordnet).
-um Fehler schneller zu finden/zu vermeiden.
-damit die Variablen nicht global sind. Stell dir vor, du hast ein 100k Perl Script, und ohne "my" müsstest du für jede Variable einen neuen Namen verwenden.
Wenn du zB my $test innerhalb einer Schleife deklarierst, gilt dieses $test nur in der Schleife und du könntest gleichzeitig eine Variable $test auch ausserhalb der Schleife verwenden, nur um einen einen Vorteil vom "my" zu nennen.
vieleicht eine sicherheitsvorkehrung für hacker/einbrecher?
Hmmm vielleicht indirekt, weil deine Scripts weniger fehleranfällig sind, weil Variablen nicht global sind.
aber dafür steht doch denke ich dass -w bei #!/usr/bin/perl -w
nein, das steht für aktivierte Warnungen.
$xNeTworKx.