Schrift
[thread]3362[/thread]

Sichere MYSQL-DB Abfrage (Seite 2)



<< |< 1 2 >| >> 16 Einträge, 2 Seiten
master
 2003-10-21 00:36
#35602 #35602
User since
2003-10-20
610 Artikel
BenutzerIn
[default_avatar]
in php ist das nicht notwendig.

frage: löst dein code alle sicherheitsprobleme?
in dem fall mach ich nur noch dieses $dbh -> quote();

gruss
master
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;
format_c
 2003-10-21 10:31
#35603 #35603
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=master,20.10.2003, 18:22]was macht denn eval?[/quote]
eval EXPR parst und führt EXPR zur Laufzeit aus.
Es gibt noch eval BLOCK aber das kannst du ja auch selbst nachlesen: perldoc -f eval

Gruß Alex
Dubu
 2003-10-22 22:22
#35604 #35604
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=master,20.10.2003, 22:36]frage: löst dein code alle sicherheitsprobleme?
in dem fall mach ich nur noch dieses $dbh -> quote();[/quote]
Ich persoenlich bevorzuge die Verwendung von Platzhaltern, aber quote() sollte genauso sicher sein, d.h. ebenfalls zuverlaessig das Injizieren von SQL-Code ueber Parameter verhindern.
Strat
 2003-10-23 00:12
#35605 #35605
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Zusammenfassung:

quotemeta ist dazu da, um Zeichen in Strings zu schuetzen, die sonst eine Sonderbedeutung haetten (wie z.B. bei Regulaeren Ausdruecken). Es ist nicht fuer Datenbanken oder andere Sachen geeignet.

Sonderzeichen in HTML: $cgi->escapeHTML($string);

Sonderzeichen in SQL: $dbh->quote($string); # achtung: fuegt ' an Anfang und ende dazu
oder: mit Platzhaltern arbeiten (siehe CPAN:DBI)

wenn dieses "Problem" unter PHP nicht existiert, dann hat PHP entweder eine ziemliche Sicherheitsluecke, oder einen Mangel an Funktionalitaet, weil man sich SQL-Statements nicht selbst zusammenbauen kann; und ich kann beides nicht glauben...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
jan10001
 2003-10-23 00:18
#35606 #35606
User since
2003-08-14
962 Artikel
BenutzerIn
[default_avatar]
Ne allgemeine Frage, aber was bringt mir der Einsatz von quotemeta?? Erreiche ich damit mehr Sicherheit im Script und wann sollte ich es einsetzen?
Strat
 2003-10-23 02:07
#35607 #35607
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
wie gesagt: in kombination mit DBI bringt dir quotemeta nichts. Nur z.B. bei Regulaeren Ausdruecken. Wenn man da eine Variable der Form /$variable/ einbaut, werden eventuelle darin vorkommende Sonderzeichen / \ ( . | - { [ + * ... evaluiert. Wenn man dieses Verhalten unterdruecken will, muss man entweder vor jedes Sonderzeichen einen \ hinzufuegen, oder man laesst es automatisch von qutemeta machen: $variable = quotemeta($variable);
Diese Vorgehensweise verwende ich jedoch nie, sondern ich quote da lieber direkt in der Regex mit \Q...\E, z.b.
Code: (dl )
$string =~ /\Q$variable\E/;
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< |< 1 2 >| >> 16 Einträge, 2 Seiten



View all threads created 2003-10-20 19:30.