[Koha-patches] [PATCH] Bug 1953 [2/6]: refactoring SQL in C4::Koha::displayServers to use placeholders.
Galen Charlton
galen.charlton at liblime.com
Tue Jul 29 18:42:46 CEST 2008
From: Andrew Moore <andrew.moore at liblime.com>
The SQL call in displayServers was not using placeholders, leaving itself open
to potential SQL injection attacks. I've rewritten it to use placeholders.
Signed-off-by: Galen Charlton <galen.charlton at liblime.com>
---
C4/Koha.pm | 17 ++++++++++++++---
1 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/C4/Koha.pm b/C4/Koha.pm
index 401dd9c..5a7fe4d 100644
--- a/C4/Koha.pm
+++ b/C4/Koha.pm
@@ -890,11 +890,22 @@ SELECT lib,
sub displayServers {
my ( $position, $type ) = @_;
my $dbh = C4::Context->dbh;
+
my $strsth = "SELECT * FROM z3950servers where 1";
- $strsth .= " AND position=\"$position\"" if ($position);
- $strsth .= " AND type=\"$type\"" if ($type);
+ my @bind_params;
+
+ if ( $position ) {
+ push @bind_params, $position;
+ $strsth .= ' AND position = ? ';
+ }
+
+ if ( $type ) {
+ push @bind_params, $type;
+ $strsth .= ' AND type = ? ';
+ }
+
my $rq = $dbh->prepare($strsth);
- $rq->execute;
+ $rq->execute( @bind_params );
my @primaryserverloop;
while ( my $data = $rq->fetchrow_hashref ) {
--
1.5.5.GIT
More information about the Koha-patches
mailing list