Thread erste Abfrage dauert lange... (31 answers)
Opened by olruebe01 at 2006-03-27 11:02

master
 2006-03-30 12:35
#34169 #34169
User since
2003-10-20
610 Artikel
BenutzerIn
[default_avatar]
Ok hier nun mein SQL-Injection Testskript.

Ich habe das ganze nun für Parameter umgebaut, sodas das
Statement trotzdem lesebar bleibt.

aber so ganz glücklich bin ich mit der lösung noch nicht, besonders aus performence Gründen.

1. gibts ev. einen besseren weg?
(überlege mir gerade statt der Sub einen Hash zunehmen)

2. Auf der Zeile wo die XXX im code sind steht:
Code: (dl )
local $params = shift; @params = @{$params};


das Problem ist, dass ich hier 2 zuviel code brauche... ein Versuch wie das ganze auf @params = @{shift};
zu verkürzen schlug fehl.

Naja bei den SQL abfragen ist hier das shiften eh zu langsam
( aber es geht ums prinzip) also wie erreiche ich sowas:
@params = @{shift}; am schnellsten?



Ganzer Code
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
@p_sql_tmp=();

&open_sql('SELECT * FROM injection_test WHERE psw='.v($psw).' AND Nummer >'.v($numm), \@p_sql_tmp,$DB_DSN); #Start MSSQL
while ( $result = $sth->fetchrow_hashref() )
{
print $result->{'psw'}." -> ".$result->{'Geheim'}.' -> '.$result->{'Nummer'}."\n";
}
&close_sql; #END MSSQL




#--------------------------- subs ----------------

sub v
{push(@p_sql_tmp,shift);return '?';} &
nbsp; #Paramenter



#-- meine alte subs aber leicht angepasst --
sub open_sql


#SQL öffnen
{
# local $state = shift;
# local $params = shift; @params = @{$params}; #XXX
# local $con_strig = shift;

$dbh = DBI->connect($_[2],'user');
$sth = $dbh->prepare($_[0]);
$sth->execute(@{$_[1]});
}

sub close_sql { $sth->finish(); $dbh->disconnect();} #SQL schliessen....
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;

View full thread erste Abfrage dauert lange...