Font
[thread]3362[/thread]

Sichere MYSQL-DB Abfrage



<< |< 1 2 >| >> 16 entries, 2 pages
guest Gast
 2003-10-20 19:30
#35592 #35592
Kann mir jemand sagen wie ich die MysQL abfrage


"select tab1 from where user=$user"
so sichermachen kann das keine mich verarscht?

$user ist eine user angabe

reicht ein $user = s/'/\'/g ??

wie muss ich quoten usw?
hilfe!!!&uml;
Crian
 2003-10-20 19:47
#35593 #35593
User since
2003-08-04
5854 articles
ModeratorIn
[Homepage]
user image
Vielleicht hilft Dir die Perlfunktion quotemeta weiter? Sie quotet Strings für RE's, ich weiß aber nicht, ob das auch für Datenbanken die richtige Quotierung liefert.

Andere Frage: Darf ich die "abgrage" im Titel mal in eine "Abfrage" ändern? :-)\n\n

<!--EDIT|Crian|1066664912-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
master
 2003-10-20 19:50
#35594 #35594
User since
2003-10-20
610 articles
BenutzerIn
[default_avatar]
darfst du...
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;
Crian
 2003-10-20 19:53
#35595 #35595
User since
2003-08-04
5854 articles
ModeratorIn
[Homepage]
user image
done ...

Ich hoffe es melden sich gleich noch Leute mit mehr Ahnung von Datenbankzugriffen von Perl aus.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
format_c
 2003-10-20 19:57
#35596 #35596
User since
2003-08-04
1706 articles
HausmeisterIn
[Homepage] [default_avatar]
Was meinst du mit verarscht?

Gruß Alex
Edit: Wie Crian schon gesagt hat. quotemeta reicht eigentlich aus. Wüsste nicht wie mich da jemand verarschen kann.

Gruß Alex\n\n

<!--EDIT|format_c|1066665659-->
master
 2003-10-20 20:00
#35597 #35597
User since
2003-10-20
610 articles
BenutzerIn
[default_avatar]
nun wenn z.b. bei benutzereingabe "$user"


etwas steht wie ' drop table
das dann nicht die tabelle gelöscht wird usw.

mysql hat da sicherheitslücken

das heisst ich muss alle ' quoten ( \' )
usw. "nur" worauf muss ich genau achten?
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;
format_c
 2003-10-20 20:04
#35598 #35598
User since
2003-08-04
1706 articles
HausmeisterIn
[Homepage] [default_avatar]
drop table geht schon mal nicht da dann das SQL-Statement falsch ist und dir DBI dann erst mal den Finger zeigt.

Solange du eval aus dem Spiel lässt musst du dir eigentlich keine großartigen Gedanken machen. Mir fällt da nix so spontan ein worauf man achten muss.

So einen Code (ok etwas rudimentär) sollte man halt tunlichst unterlassen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
format_c@linux:~/perl_samples>perl
use strict;
use warnings;

my $password = 'testring';
my $in = <STDIN>;
chomp $in;
eval $in;
_ _ END _ _
print $password;
testringformat_c@linux:~/perl_samples>


Gruß Alex
jan10001
 2003-10-20 20:09
#35599 #35599
User since
2003-08-14
962 articles
BenutzerIn
[default_avatar]
Ich glaube quotemeta verursachte bei MySQL einige Probleme, deshalb lieber so quoten.

Code: (dl )
my $test_q = $dbh->quote($test);
master
 2003-10-20 20:22
#35600 #35600
User since
2003-10-20
610 articles
BenutzerIn
[default_avatar]
[quote=format_c,20.10.2003, 18:04]drop table geht schon mal nicht da dann das SQL-Statement falsch ist und dir DBI dann erst mal den Finger zeigt.

Solange du eval aus dem Spiel lässt musst du dir eigentlich keine großartigen Gedanken machen. Mir fällt da nix so spontan ein worauf man achten muss.

So einen Code (ok etwas rudimentär) sollte man halt tunlichst unterlassen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
format_c@linux:~/perl_samples>perl
use strict;
use warnings;

my $password = 'testring';
my $in = <STDIN>;
chomp $in;
eval $in;
_ _ END _ _
print $password;
testringformat_c@linux:~/perl_samples>


Gruß Alex[/quote]
was macht denn eval?
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;
Dubu
 2003-10-20 23:30
#35601 #35601
User since
2003-08-04
2145 articles
ModeratorIn + EditorIn

user image
Bitte $dbh->quote() (wie von jan10001 schon geschrieben) oder Platzhalter benutzen.

Siehe Doku zu DBI oder auch hier: http://board.perl-community.de/cgi-bin....24;t=34
und in aehnlichen Threads.
<< |< 1 2 >| >> 16 entries, 2 pages



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