Bernd Wurst commited on 2014-02-03 16:57:44
Zeige 17 geänderte Dateien mit 241 Einfügungen und 214 Löschungen.
... | ... |
@@ -62,6 +62,10 @@ class DB extends PDO { |
62 | 62 |
*/ |
63 | 63 |
function db_escape_string($string) |
64 | 64 |
{ |
65 |
+ if (config("enable_debug")) { |
|
66 |
+ $backtrace = debug_backtrace(); |
|
67 |
+ warning("call to db_escape_string() in {$backtrace[1]['file']} line {$backtrace[1]['line']}"); |
|
68 |
+ } |
|
65 | 69 |
global $_db; |
66 | 70 |
__ensure_connected(); |
67 | 71 |
$quoted = $_db->quote($string); |
... | ... |
@@ -112,6 +112,10 @@ function server_names() |
112 | 112 |
// Diese Funktion funktioniert nicht für preprared statements |
113 | 113 |
function maybe_null($value) |
114 | 114 |
{ |
115 |
+ if (config("enable_debug")) { |
|
116 |
+ $backtrace = debug_backtrace(); |
|
117 |
+ warning("call to maybe_null() in {$backtrace[1]['file']} line {$backtrace[1]['line']}"); |
|
118 |
+ } |
|
115 | 119 |
if ($value == NULL) |
116 | 120 |
return 'NULL'; |
117 | 121 |
|
... | ... |
@@ -131,19 +135,19 @@ function logger($severity, $scriptname, $scope, $message) |
131 | 135 |
if (config('logging') <= $severity) |
132 | 136 |
return; |
133 | 137 |
|
134 |
- $user = 'NULL'; |
|
138 |
+ $user = NULL; |
|
135 | 139 |
if ($_SESSION['role'] & ROLE_SYSTEMUSER) |
136 |
- $user = "'{$_SESSION['userinfo']['username']}'"; |
|
140 |
+ $user = $_SESSION['userinfo']['username']; |
|
137 | 141 |
elseif ($_SESSION['role'] & ROLE_CUSTOMER) |
138 |
- $user = "'{$_SESSION['customerinfo']['customerno']}'"; |
|
139 |
- |
|
140 |
- $remote = db_escape_string($_SERVER['REMOTE_ADDR']); |
|
142 |
+ $user = $_SESSION['customerinfo']['customerno']; |
|
141 | 143 |
|
142 |
- $scriptname = db_escape_string($scriptname); |
|
143 |
- $scope = db_escape_string($scope); |
|
144 |
- $message = db_escape_string($message); |
|
144 |
+ $args = array(":user" => $user, |
|
145 |
+ ":remote" => $_SERVER['REMOTE_ADDR'], |
|
146 |
+ ":scriptname" => $scriptname, |
|
147 |
+ ":scope" => $scope, |
|
148 |
+ ":message" => $message); |
|
145 | 149 |
|
146 |
- db_query("INSERT INTO misc.scriptlog (remote, user,scriptname,scope,message) VALUES ('{$remote}', {$user}, '{$scriptname}', '{$scope}', '{$message}');"); |
|
150 |
+ db_query("INSERT INTO misc.scriptlog (remote, user,scriptname,scope,message) VALUES (:remote, :user, :scriptname, :scope, :message)", $args); |
|
147 | 151 |
} |
148 | 152 |
|
149 | 153 |
function html_header($arg) |
... | ... |
@@ -36,9 +36,9 @@ function get_domain_offer($domainname) |
36 | 36 |
|
37 | 37 |
$data = array("domainname" => $domainname, "basename" => $basename, "tld" => $tld); |
38 | 38 |
|
39 |
- $result = db_query("SELECT tld, gebuehr, setup FROM misc.domainpreise_kunde WHERE kunde={$cid} AND tld='{$tld}' AND ruecksprache='N'"); |
|
39 |
+ $result = db_query("SELECT tld, gebuehr, setup FROM misc.domainpreise_kunde WHERE kunde=:cid AND tld=:tld AND ruecksprache='N'", array(":cid" => $cid, ":tld" => $tld)); |
|
40 | 40 |
if ($result->rowCount() != 1) { |
41 |
- $result = db_query("SELECT tld, gebuehr, setup FROM misc.domainpreise WHERE tld='{$tld}' AND ruecksprache='N'"); |
|
41 |
+ $result = db_query("SELECT tld, gebuehr, setup FROM misc.domainpreise WHERE tld=:tld AND ruecksprache='N'", array(":tld" => $tld)); |
|
42 | 42 |
} |
43 | 43 |
if ($result->rowCount() != 1) { |
44 | 44 |
warning('Die Endung »'.$tld.'« steht zur automatischen Eintragung nicht zur Verfügung.'); |
... | ... |
@@ -81,16 +81,23 @@ function register_domain($domainname, $uid) |
81 | 81 |
system_failure('Kein User gesetzt'); |
82 | 82 |
} |
83 | 83 |
|
84 |
- db_query("INSERT INTO kundendaten.domains (kunde, useraccount, domainname, tld, billing, registrierungsdatum, dns,webserver, mail, provider, betrag, brutto) VALUES ({$cid}, {$useraccount}, '{$data['basename']}', '{$data['tld']}', 'regular', NULL, 1, 1, 'auto', 'terions', {$data['gebuehr']}, 1) "); |
|
84 |
+ $args = array(":cid" => $cid, |
|
85 |
+ ":useraccount" => $useraccount, |
|
86 |
+ ":basename" => $data['basename'], |
|
87 |
+ ":tld" => $data['tld'], |
|
88 |
+ ":gebuehr" => $data['gebuehr']); |
|
89 |
+ db_query("INSERT INTO kundendaten.domains (kunde, useraccount, domainname, tld, billing, registrierungsdatum, dns,webserver, mail, provider, betrag, brutto) VALUES ". |
|
90 |
+ "(:cid, :useraccount, :basename, :tld, 'regular', NULL, 1, 1, 'auto', 'terions', :gebuehr, 1) ", $args); |
|
85 | 91 |
if ($data['setup']) { |
86 |
- db_query("INSERT INTO kundendaten.leistungen (kunde,periodisch,datum,betrag,brutto,beschreibung,anzahl) VALUES ({$cid}, 0, CURDATE(), {$data['setup']}, 1, 'Einmalige Setup-Gebühren für Domain \"{$data['domainname']}\"', 1)"); |
|
92 |
+ $args = array(":cid" => $cid, ":setup" => $data['setup'], ":text" => 'Einmalige Setup-Gebühren für Domain "'.$data['domainname'].'"'); |
|
93 |
+ db_query("INSERT INTO kundendaten.leistungen (kunde,periodisch,datum,betrag,brutto,beschreibung,anzahl) VALUES (:cid, 0, CURDATE(), :setup, 1, :text, 1)", $args); |
|
87 | 94 |
} |
88 | 95 |
} |
89 | 96 |
|
90 | 97 |
function list_useraccounts() |
91 | 98 |
{ |
92 | 99 |
$customerno = (int) $_SESSION['customerinfo']['customerno']; |
93 |
- $result = db_query("SELECT uid,username,name FROM system.useraccounts WHERE kunde={$customerno}"); |
|
100 |
+ $result = db_query("SELECT uid,username,name FROM system.useraccounts WHERE kunde=?", array($customerno)); |
|
94 | 101 |
$ret = array(); |
95 | 102 |
while ($item = $result->fetch()) |
96 | 103 |
{ |
... | ... |
@@ -70,10 +70,10 @@ else |
70 | 70 |
|
71 | 71 |
$record['hostname'] = $_REQUEST['hostname']; |
72 | 72 |
$record['domain'] = (int) $_REQUEST['domain']; |
73 |
- $record['ip'] = (isset($_REQUEST['ip']) ? $_REQUEST['ip'] : ''); |
|
74 |
- $record['data'] = $_REQUEST['data']; |
|
75 |
- $record['dyndns'] = (isset($_REQUEST['dyndns']) ? (int) $_REQUEST['dyndns'] : ''); |
|
76 |
- $record['spec'] = (isset($_REQUEST['spec']) ? (int) $_REQUEST['spec'] : ''); |
|
73 |
+ $record['ip'] = (isset($_REQUEST['ip']) ? $_REQUEST['ip'] : NULL); |
|
74 |
+ $record['data'] = (isset($_REQUEST['data']) ? $_REQUEST['data'] : NULL); |
|
75 |
+ $record['dyndns'] = (isset($_REQUEST['dyndns']) ? (int) $_REQUEST['dyndns'] : NULL); |
|
76 |
+ $record['spec'] = (isset($_REQUEST['spec']) ? (int) $_REQUEST['spec'] : NULL); |
|
77 | 77 |
$record['ttl'] = (int) $_REQUEST['ttl']; |
78 | 78 |
|
79 | 79 |
save_dns_record($id, $record); |
... | ... |
@@ -25,7 +25,7 @@ require_once('class/domain.php'); |
25 | 25 |
function get_dyndns_accounts() |
26 | 26 |
{ |
27 | 27 |
$uid = (int) $_SESSION['userinfo']['uid']; |
28 |
- $result = db_query("SELECT * FROM dns.dyndns WHERE uid={$uid}"); |
|
28 |
+ $result = db_query("SELECT * FROM dns.dyndns WHERE uid=?", array($uid)); |
|
29 | 29 |
$list = array(); |
30 | 30 |
while ($item = $result->fetch()) { |
31 | 31 |
array_push($list, $item); |
... | ... |
@@ -37,9 +37,9 @@ function get_dyndns_accounts() |
37 | 37 |
|
38 | 38 |
function get_dyndns_account($id) |
39 | 39 |
{ |
40 |
- $id = (int) $id; |
|
41 |
- $uid = (int) $_SESSION['userinfo']['uid']; |
|
42 |
- $result = db_query("SELECT * FROM dns.dyndns WHERE id={$id} AND uid={$uid}"); |
|
40 |
+ $args = array(":id" => (int) $id, |
|
41 |
+ ":uid" => (int) $_SESSION['userinfo']['uid']); |
|
42 |
+ $result = db_query("SELECT * FROM dns.dyndns WHERE id=:id AND uid=:uid", $args); |
|
43 | 43 |
if ($result->rowCount() != 1) { |
44 | 44 |
logger(LOG_WARNING, "modules/dns/include/dnsinclude", "dyndns", "account »{$id}« invalid for uid »{$uid}«."); |
45 | 45 |
system_failure("Account ungültig"); |
... | ... |
@@ -57,14 +57,16 @@ function create_dyndns_account($handle, $password_http, $sshkey) |
57 | 57 |
if ($password_http == '' && $sshkey == '') |
58 | 58 |
system_failure('Sie müssen entweder einen SSH-Key oder ein Passwort zum Web-Update eingeben.'); |
59 | 59 |
|
60 |
- $handle = maybe_null(db_escape_string(filter_input_username($handle))); |
|
61 |
- $sshkey = maybe_null(db_escape_string(filter_input_general($sshkey))); |
|
60 |
+ $handle = filter_input_username($handle); |
|
61 |
+ $sshkey = filter_input_general($sshkey); |
|
62 | 62 |
|
63 | 63 |
$pwhash = 'NULL'; |
64 | 64 |
if ($password_http) |
65 | 65 |
$pwhash = "'{SHA}".base64_encode(sha1($password_http, true))."'"; |
66 | 66 |
|
67 |
- db_query("INSERT INTO dns.dyndns (uid, handle, password, sshkey) VALUES ({$uid}, {$handle}, {$pwhash}, {$sshkey})"); |
|
67 |
+ db_query("INSERT INTO dns.dyndns (uid, handle, password, sshkey) VALUES ". |
|
68 |
+ "(:uid, :handle, :pwhash, :sshkey)", |
|
69 |
+ array(":uid" => $uid, ":handle" => $handle, ":pwhash" => $pwhash, ":sshkey" => $sshkey)); |
|
68 | 70 |
logger(LOG_INFO, "modules/dns/include/dnsinclude", "dyndns", "inserted account"); |
69 | 71 |
} |
70 | 72 |
|
... | ... |
@@ -72,10 +74,10 @@ function create_dyndns_account($handle, $password_http, $sshkey) |
72 | 74 |
function edit_dyndns_account($id, $handle, $password_http, $sshkey) |
73 | 75 |
{ |
74 | 76 |
$id = (int) $id; |
75 |
- $handle = maybe_null(db_escape_string(filter_input_username($handle))); |
|
76 |
- $sshkey = maybe_null(db_escape_string(filter_input_general($sshkey))); |
|
77 |
+ $handle = filter_input_username($handle); |
|
78 |
+ $sshkey = filter_input_general($sshkey); |
|
77 | 79 |
|
78 |
- $pwhash = 'NULL'; |
|
80 |
+ $pwhash = NULL; |
|
79 | 81 |
if ($password_http) |
80 | 82 |
{ |
81 | 83 |
if ($password_http == '************') |
... | ... |
@@ -84,7 +86,8 @@ function edit_dyndns_account($id, $handle, $password_http, $sshkey) |
84 | 86 |
$pwhash = "'{SHA}".base64_encode(sha1($password_http, true))."'"; |
85 | 87 |
} |
86 | 88 |
|
87 |
- db_query("UPDATE dns.dyndns SET handle={$handle}, password={$pwhash}, sshkey={$sshkey} WHERE id={$id} LIMIT 1"); |
|
89 |
+ $args = array(":handle" => $handle, ":pwhash" => $pwhash, ":sshkey" => $sshkey, ":id" => $id); |
|
90 |
+ db_query("UPDATE dns.dyndns SET handle=:handle, password=:pwhash, sshkey=:sshkey WHERE id=:id", $args); |
|
88 | 91 |
logger(LOG_INFO, "modules/dns/include/dnsinclude", "dyndns", "edited account »{$id}«"); |
89 | 92 |
} |
90 | 93 |
|
... | ... |
@@ -93,7 +96,7 @@ function delete_dyndns_account($id) |
93 | 96 |
{ |
94 | 97 |
$id = (int) $id; |
95 | 98 |
|
96 |
- db_query("DELETE FROM dns.dyndns WHERE id={$id} LIMIT 1"); |
|
99 |
+ db_query("DELETE FROM dns.dyndns WHERE id=?", array($id)); |
|
97 | 100 |
logger(LOG_INFO, "modules/dns/include/dnsinclude", "dyndns", "deleted account »{$id}«"); |
98 | 101 |
} |
99 | 102 |
|
... | ... |
@@ -101,7 +104,7 @@ function delete_dyndns_account($id) |
101 | 104 |
function get_dyndns_records($id) |
102 | 105 |
{ |
103 | 106 |
$id = (int) $id; |
104 |
- $result = db_query("SELECT hostname, domain, type, ttl, lastchange, id FROM dns.custom_records WHERE dyndns={$id}"); |
|
107 |
+ $result = db_query("SELECT hostname, domain, type, ttl, lastchange, id FROM dns.custom_records WHERE dyndns=?", array($id)); |
|
105 | 108 |
$data = array(); |
106 | 109 |
while ($entry = $result->fetch()) { |
107 | 110 |
$dom = new Domain((int) $entry['domain']); |
... | ... |
@@ -142,7 +145,7 @@ function blank_dns_record($type) |
142 | 145 |
function get_dns_record($id) |
143 | 146 |
{ |
144 | 147 |
$id = (int) $id; |
145 |
- $result = db_query("SELECT hostname, domain, type, ip, dyndns, spec, data, ttl FROM dns.custom_records WHERE id={$id}"); |
|
148 |
+ $result = db_query("SELECT hostname, domain, type, ip, dyndns, spec, data, ttl FROM dns.custom_records WHERE id=?", array($id)); |
|
146 | 149 |
if ($result->rowCount() != 1) |
147 | 150 |
system_failure('illegal ID'); |
148 | 151 |
$data = $result->fetch(); |
... | ... |
@@ -156,7 +159,7 @@ function get_dns_record($id) |
156 | 159 |
function get_domain_records($dom) |
157 | 160 |
{ |
158 | 161 |
$dom = (int) $dom; |
159 |
- $result = db_query("SELECT hostname, domain, type, ip, dyndns, spec, data, ttl, id FROM dns.custom_records WHERE domain={$dom}"); |
|
162 |
+ $result = db_query("SELECT hostname, domain, type, ip, dyndns, spec, data, ttl, id FROM dns.custom_records WHERE domain=?", array($dom)); |
|
160 | 163 |
$data = array(); |
161 | 164 |
while ($entry = $result->fetch()) { |
162 | 165 |
$dom = new Domain((int) $entry['domain']); |
... | ... |
@@ -172,9 +175,7 @@ function get_domain_records($dom) |
172 | 175 |
|
173 | 176 |
function get_domain_auto_records($domainname) |
174 | 177 |
{ |
175 |
- $domainname = db_escape_string($domainname); |
|
176 |
- //$result = db_query("SELECT hostname, domain, CONCAT_WS('.', hostname, domain) AS fqdn, type, ip, spec, data, TRIM(ttl) FROM dns.v_autogenerated_records WHERE domain='{$domainname}'"); |
|
177 |
- $result = db_query("SELECT hostname, domain, CONCAT_WS('.', hostname, domain) AS fqdn, type, ip, spec, data, ttl FROM dns.tmp_autorecords WHERE domain='{$domainname}'"); |
|
178 |
+ $result = db_query("SELECT hostname, domain, CONCAT_WS('.', hostname, domain) AS fqdn, type, ip, spec, data, ttl FROM dns.tmp_autorecords WHERE domain=?", array($domainname)); |
|
178 | 179 |
$data = array(); |
179 | 180 |
while ($entry = $result->fetch()) { |
180 | 181 |
array_push($data, $entry); |
... | ... |
@@ -208,37 +209,37 @@ function save_dns_record($id, $record) |
208 | 209 |
if ($record['dyndns']) |
209 | 210 |
{ |
210 | 211 |
get_dyndns_account( $record['dyndns'] ); |
211 |
- $record['ip'] = ''; |
|
212 |
+ $record['ip'] = NULL; |
|
212 | 213 |
} |
213 | 214 |
else |
214 | 215 |
{ |
215 | 216 |
verify_input_ipv4($record['ip']); |
216 |
- $record['data'] = ''; |
|
217 |
- $record['spec'] = ''; |
|
217 |
+ $record['data'] = NULL; |
|
218 |
+ $record['spec'] = NULL; |
|
218 | 219 |
} |
219 | 220 |
break; |
220 | 221 |
case 'aaaa': |
221 |
- $record['dyndns'] = ''; |
|
222 |
+ $record['dyndns'] = NULL; |
|
222 | 223 |
verify_input_ipv6($record['ip']); |
223 |
- $record['data'] = ''; |
|
224 |
- $record['spec'] = ''; |
|
224 |
+ $record['data'] = NULL; |
|
225 |
+ $record['spec'] = NULL; |
|
225 | 226 |
break; |
226 | 227 |
case 'mx': |
227 |
- $record['dyndns'] = ''; |
|
228 |
+ $record['dyndns'] = NULL; |
|
228 | 229 |
$record['spec'] = (int) $record['spec']; |
229 | 230 |
if ($record['spec'] < 1) |
230 | 231 |
systen_failure("invalid priority"); |
231 | 232 |
verify_input_hostname($record['data']); |
232 | 233 |
if (! $record['data'] ) |
233 | 234 |
system_failure('MX hostname missing'); |
234 |
- $record['ip'] = ''; |
|
235 |
+ $record['ip'] = NULL; |
|
235 | 236 |
break; |
236 | 237 |
case 'cname': |
237 | 238 |
case 'ptr': |
238 | 239 |
case 'ns': |
239 |
- $record['dyndns'] = ''; |
|
240 |
- $record['spec'] = ''; |
|
241 |
- $record['ip'] = ''; |
|
240 |
+ $record['dyndns'] = NULL; |
|
241 |
+ $record['spec'] = NULL; |
|
242 |
+ $record['ip'] = NULL; |
|
242 | 243 |
verify_input_hostname($record['data']); |
243 | 244 |
if (! $record['data'] ) |
244 | 245 |
system_failure('destination host missing'); |
... | ... |
@@ -246,17 +247,17 @@ function save_dns_record($id, $record) |
246 | 247 |
|
247 | 248 |
case 'spf': |
248 | 249 |
case 'txt': |
249 |
- $record['dyndns'] = ''; |
|
250 |
- $record['spec'] = ''; |
|
251 |
- $record['ip'] = ''; |
|
250 |
+ $record['dyndns'] = NULL; |
|
251 |
+ $record['spec'] = NULL; |
|
252 |
+ $record['ip'] = NULL; |
|
252 | 253 |
if (! $record['data'] ) |
253 | 254 |
system_failure('text entry missing'); |
254 | 255 |
break; |
255 | 256 |
|
256 | 257 |
case 'sshfp': |
257 |
- $record['dyndns'] = ''; |
|
258 |
+ $record['dyndns'] = NULL; |
|
258 | 259 |
$record['spec'] = max( (int) $record['spec'], 1); |
259 |
- $record['ip'] = ''; |
|
260 |
+ $record['ip'] = NULL; |
|
260 | 261 |
if (! $record['data'] ) |
261 | 262 |
system_failure('text entry missing'); |
262 | 263 |
break; |
... | ... |
@@ -268,16 +269,20 @@ function save_dns_record($id, $record) |
268 | 269 |
system_failure('Not implemented'); |
269 | 270 |
} |
270 | 271 |
$id = (int) $id; |
271 |
- $record['hostname'] = maybe_null($record['hostname']); |
|
272 |
- $record['ttl'] = ($record['ttl'] == 0 ? 'NULL' : (int) $record['ttl']); |
|
273 |
- $record['ip'] = maybe_null($record['ip']); |
|
274 |
- $record['data'] = maybe_null($record['data']); |
|
275 |
- $record['spec'] = maybe_null($record['spec']); |
|
276 |
- $record['dyndns'] = maybe_null($record['dyndns']); |
|
277 |
- if ($id) |
|
278 |
- db_query("UPDATE dns.custom_records SET hostname={$record['hostname']}, domain={$dom->id}, type='{$record['type']}', ttl={$record['ttl']}, ip={$record['ip']}, dyndns={$record['dyndns']}, data={$record['data']}, spec={$record['spec']} WHERE id={$id} LIMIT 1"); |
|
279 |
- else |
|
280 |
- db_query("INSERT INTO dns.custom_records (hostname, domain, type, ttl, ip, dyndns, data, spec) VALUES ({$record['hostname']}, {$dom->id}, '{$record['type']}', {$record['ttl']}, {$record['ip']}, {$record['dyndns']}, {$record['data']}, {$record['spec']})"); |
|
272 |
+ $args = array(":domain" => $dom->id, |
|
273 |
+ ":hostname" => $record['hostname'], |
|
274 |
+ ":type" => $record['type'], |
|
275 |
+ ":ttl" => ($record['ttl'] == 0 ? NULL : (int) $record['ttl']), |
|
276 |
+ ":ip" => $record['ip'], |
|
277 |
+ ":dyndns" => $record['dyndns'], |
|
278 |
+ ":data" => $record['data'], |
|
279 |
+ ":spec" => $record['spec']); |
|
280 |
+ if ($id) { |
|
281 |
+ $args[":id"] = $id; |
|
282 |
+ db_query("UPDATE dns.custom_records SET hostname=:hostname, domain=:domain, type=:type, ttl=:ttl, ip=:ip, dyndns=:dyndns, data=:data, spec=:spec WHERE id=:id", $args); |
|
283 |
+ } else { |
|
284 |
+ db_query("INSERT INTO dns.custom_records (hostname, domain, type, ttl, ip, dyndns, data, spec) VALUES (:hostname, :domain, :type, :ttl, :ip, :dyndns, :data, :spec)", $args); |
|
285 |
+ } |
|
281 | 286 |
|
282 | 287 |
} |
283 | 288 |
|
... | ... |
@@ -287,7 +292,7 @@ function delete_dns_record($id) |
287 | 292 |
$id = (int) $id; |
288 | 293 |
// Diese Funktion prüft, ob der Eintrag einer eigenen Domain gehört |
289 | 294 |
$record = get_dns_record($id); |
290 |
- db_query("DELETE FROM dns.custom_records WHERE id={$id} LIMIT 1"); |
|
295 |
+ db_query("DELETE FROM dns.custom_records WHERE id=?", array($id)); |
|
291 | 296 |
} |
292 | 297 |
|
293 | 298 |
|
... | ... |
@@ -297,7 +302,7 @@ function convert_from_autorecords($domainid) |
297 | 302 |
$dom->ensure_userdomain(); |
298 | 303 |
$dom = $dom->id; |
299 | 304 |
|
300 |
- db_query("INSERT IGNORE INTO dns.custom_records SELECT r.id, r.lastchange, type, d.id, hostname, ip, NULL AS dyndns, data, spec, ttl FROM dns.v_tmptable_allrecords AS r INNER JOIN dns.v_domains AS d ON (d.name=r.domain) WHERE d.id={$dom}"); |
|
305 |
+ db_query("INSERT IGNORE INTO dns.custom_records SELECT r.id, r.lastchange, type, d.id, hostname, ip, NULL AS dyndns, data, spec, ttl FROM dns.v_tmptable_allrecords AS r INNER JOIN dns.v_domains AS d ON (d.name=r.domain) WHERE d.id=?", array($dom)); |
|
301 | 306 |
disable_autorecords($dom); |
302 | 307 |
db_query("UPDATE dns.dnsstatus SET status='outdated'"); |
303 | 308 |
warning("Die automatischen Einträge werden in Kürze abgeschaltet, bitte haben Sie einen Moment Geduld."); |
... | ... |
@@ -310,7 +315,7 @@ function enable_autorecords($domainid) |
310 | 315 |
$dom->ensure_userdomain(); |
311 | 316 |
$dom = $dom->id; |
312 | 317 |
|
313 |
- db_query("UPDATE kundendaten.domains SET autodns=1 WHERE id={$dom} LIMIT 1"); |
|
318 |
+ db_query("UPDATE kundendaten.domains SET autodns=1 WHERE id=?", array($dom)); |
|
314 | 319 |
warning("Die automatischen Einträge werden in Kürze aktiviert, bitte haben Sie einen Moment Geduld."); |
315 | 320 |
} |
316 | 321 |
|
... | ... |
@@ -320,14 +325,14 @@ function disable_autorecords($domainid) |
320 | 325 |
$dom->ensure_userdomain(); |
321 | 326 |
$dom = $dom->id; |
322 | 327 |
|
323 |
- db_query("UPDATE kundendaten.domains SET autodns=0 WHERE id={$dom} LIMIT 1"); |
|
328 |
+ db_query("UPDATE kundendaten.domains SET autodns=0 WHERE id=?", array($dom)); |
|
324 | 329 |
} |
325 | 330 |
|
326 | 331 |
|
327 | 332 |
function domain_is_maildomain($domain) |
328 | 333 |
{ |
329 | 334 |
$domain = (int) $domain; |
330 |
- $result = db_query("SELECT mail FROM kundendaten.domains WHERE id={$domain}"); |
|
335 |
+ $result = db_query("SELECT mail FROM kundendaten.domains WHERE id=?", array($domain)); |
|
331 | 336 |
$dom = $result->fetch(); |
332 | 337 |
return ($dom['mail'] != 'none'); |
333 | 338 |
} |
... | ... |
@@ -35,9 +35,8 @@ function do_ajax_cert_login() { |
35 | 35 |
|
36 | 36 |
function get_logins_by_cert($cert) |
37 | 37 |
{ |
38 |
- $cert = db_escape_string(str_replace(array('-----BEGIN CERTIFICATE-----', '-----END CERTIFICATE-----', ' ', "\n"), array(), $cert)); |
|
39 |
- $query = "SELECT type,username,startpage FROM system.clientcert WHERE cert='{$cert}'"; |
|
40 |
- $result = db_query($query); |
|
38 |
+ $cert = str_replace(array('-----BEGIN CERTIFICATE-----', '-----END CERTIFICATE-----', ' ', "\n"), array(), $cert); |
|
39 |
+ $result = db_query("SELECT type,username,startpage FROM system.clientcert WHERE cert=?", array($cert)); |
|
41 | 40 |
if ($result->rowCount() < 1) |
42 | 41 |
return NULL; |
43 | 42 |
else { |
... | ... |
@@ -54,8 +53,7 @@ function get_cert_by_id($id) |
54 | 53 |
$id = (int) $id; |
55 | 54 |
if ($id == 0) |
56 | 55 |
system_failure('no ID'); |
57 |
- $query = "SELECT id,dn,issuer,cert,username,startpage FROM system.clientcert WHERE `id`='{$id}' LIMIT 1"; |
|
58 |
- $result = db_query($query); |
|
56 |
+ $result = db_query("SELECT id,dn,issuer,cert,username,startpage FROM system.clientcert WHERE `id`=?", array($id)); |
|
59 | 57 |
if ($result->rowCount() < 1) |
60 | 58 |
return NULL; |
61 | 59 |
$ret = $result->fetch(); |
... | ... |
@@ -66,11 +64,9 @@ function get_cert_by_id($id) |
66 | 64 |
|
67 | 65 |
function get_certs_by_username($username) |
68 | 66 |
{ |
69 |
- $username = db_escape_string($username); |
|
70 | 67 |
if ($username == '') |
71 | 68 |
system_failure('empty username'); |
72 |
- $query = "SELECT id,dn,issuer,cert,startpage FROM system.clientcert WHERE `username`='{$username}'"; |
|
73 |
- $result = db_query($query); |
|
69 |
+ $result = db_query("SELECT id,dn,issuer,cert,startpage FROM system.clientcert WHERE `username`=?", array($username)); |
|
74 | 70 |
if ($result->rowCount() < 1) |
75 | 71 |
return NULL; |
76 | 72 |
while ($row = $result->fetch()) { |
... | ... |
@@ -86,33 +82,34 @@ function add_clientcert($certdata, $dn, $issuer, $startpage='') |
86 | 82 |
$username = NULL; |
87 | 83 |
if ($_SESSION['role'] & ROLE_SYSTEMUSER) { |
88 | 84 |
$type = 'user'; |
89 |
- $username = db_escape_string($_SESSION['userinfo']['username']); |
|
85 |
+ $username = $_SESSION['userinfo']['username']; |
|
90 | 86 |
if (isset($_SESSION['subuser'])) { |
91 |
- $username = db_escape_string($_SESSION['subuser']); |
|
87 |
+ $username = $_SESSION['subuser']; |
|
92 | 88 |
$type = 'subuser'; |
93 | 89 |
} |
94 | 90 |
} elseif ($_SESSION['role'] & ROLE_VMAIL_ACCOUNT) { |
95 | 91 |
$type = 'email'; |
96 |
- $username = db_escape_string($_SESSION['mailaccount']); |
|
92 |
+ $username = $_SESSION['mailaccount']; |
|
97 | 93 |
} |
98 | 94 |
if (! $type || ! $username) { |
99 | 95 |
system_failure('cannot get type or username of login'); |
100 | 96 |
} |
101 |
- $certdata = db_escape_string($certdata); |
|
102 |
- $dn = maybe_null(db_escape_string($dn)); |
|
103 |
- $issuer = maybe_null(db_escape_string($issuer)); |
|
104 | 97 |
if ($startpage && ! check_path($startpage)) |
105 | 98 |
system_failure('Startseite kaputt'); |
106 |
- $startpage = maybe_null(db_escape_string($startpage)); |
|
107 | 99 |
|
108 | 100 |
if ($certdata == '') |
109 | 101 |
system_failure('Kein Zertifikat'); |
110 |
- DEBUG($certdata); |
|
111 |
- DEBUG($dn); |
|
112 |
- DEBUG($issuer); |
|
102 |
+ |
|
103 |
+ $args = array(":dn" => $dn, |
|
104 |
+ ":issuer" => $issuer, |
|
105 |
+ ":certdata" => $certdata, |
|
106 |
+ ":type" => $type, |
|
107 |
+ ":username" => $username, |
|
108 |
+ ":startpage" => $startpage); |
|
109 |
+ DEBUG($args); |
|
113 | 110 |
|
114 | 111 |
db_query("INSERT INTO system.clientcert (`dn`, `issuer`, `cert`, `type`, `username`, `startpage`) |
115 |
-VALUES ({$dn}, {$issuer}, '{$certdata}', '{$type}', '{$username}', {$startpage})"); |
|
112 |
+VALUES (:dn, :issuer, :certdata, :type, :username, :startpage)", $args); |
|
116 | 113 |
|
117 | 114 |
} |
118 | 115 |
|
... | ... |
@@ -124,18 +121,19 @@ function delete_clientcert($id) |
124 | 121 |
$username = NULL; |
125 | 122 |
if ($_SESSION['role'] & ROLE_SYSTEMUSER) { |
126 | 123 |
$type = 'user'; |
127 |
- $username = db_escape_string($_SESSION['userinfo']['username']); |
|
124 |
+ $username = $_SESSION['userinfo']['username']; |
|
128 | 125 |
if (isset($_SESSION['subuser'])) { |
129 |
- $username = db_escape_string($_SESSION['subuser']); |
|
126 |
+ $username = $_SESSION['subuser']; |
|
130 | 127 |
$type = 'subuser'; |
131 | 128 |
} |
132 | 129 |
} elseif ($_SESSION['role'] & ROLE_VMAIL_ACCOUNT) { |
133 | 130 |
$type = 'email'; |
134 |
- $username = db_escape_string($_SESSION['mailaccount']); |
|
131 |
+ $username = $_SESSION['mailaccount']; |
|
135 | 132 |
} |
136 | 133 |
if (! $type || ! $username) { |
137 | 134 |
system_failure('cannot get type or username of login'); |
138 | 135 |
} |
139 |
- db_query("DELETE FROM system.clientcert WHERE id={$id} AND type='{$type}' AND username='{$username}' LIMIT 1"); |
|
136 |
+ db_query("DELETE FROM system.clientcert WHERE id=:id AND type=:type AND username=:username", |
|
137 |
+ array(":id" => $id, ":type" => $type, ":username" => $username)); |
|
140 | 138 |
} |
141 | 139 |
|
... | ... |
@@ -175,7 +175,6 @@ function get_lastschrift($rechnungsnummer) { |
175 | 175 |
|
176 | 176 |
function get_lastschriften($mandatsreferenz) |
177 | 177 |
{ |
178 |
- $mandatsreferenz = db_escape_string($mandatsreferenz); |
|
179 | 178 |
$result = db_query("SELECT rechnungsnummer, rechnungsdatum, betrag, buchungsdatum FROM kundendaten.sepalastschrift WHERE mandatsreferenz=? ORDER BY buchungsdatum DESC", array($mandatsreferenz)); |
180 | 179 |
$ret = array(); |
181 | 180 |
while ($item = $result->fetch()) { |
... | ... |
@@ -198,8 +197,7 @@ function get_sepamandate() |
198 | 197 |
|
199 | 198 |
function yesterday($date) |
200 | 199 |
{ |
201 |
- $date = db_escape_string($date); |
|
202 |
- $result = db_query("SELECT '{$date}' - INTERVAL 1 DAY"); |
|
200 |
+ $result = db_query("SELECT ? - INTERVAL 1 DAY", array($date)); |
|
203 | 201 |
return $result->fetch()[0]; |
204 | 202 |
} |
205 | 203 |
|
... | ... |
@@ -21,7 +21,7 @@ require_once('invoice.php'); |
21 | 21 |
|
22 | 22 |
$kundenname = $_SESSION['customerinfo']['name']; |
23 | 23 |
$id = (int) $_SESSION['customerinfo']['customerno']; |
24 |
-$result = db_query("SELECT CONCAT(adresse, '\\\\n', plz, ' ', ort) AS adresse FROM kundendaten.kunden WHERE id={$id}"); |
|
24 |
+$result = db_query("SELECT CONCAT(adresse, '\\\\n', plz, ' ', ort) AS adresse FROM kundendaten.kunden WHERE id=?", array($id)); |
|
25 | 25 |
$r = $result->fetch(); |
26 | 26 |
|
27 | 27 |
header("Content-Type: text/javascript"); |
... | ... |
@@ -16,21 +16,19 @@ Nevertheless, in case you use a significant part of this code, we ask (but not r |
16 | 16 |
|
17 | 17 |
function set_newsletter_address($address) { |
18 | 18 |
$cid = $_SESSION['customerinfo']['customerno']; |
19 |
- $address = maybe_null(db_escape_string($address)); |
|
20 |
- db_query("UPDATE kundendaten.kunden SET email_newsletter={$address} WHERE id={$cid}"); |
|
19 |
+ db_query("UPDATE kundendaten.kunden SET email_newsletter=:address WHERE id=:cid", array(":address" => $address, ":cid" => $cid)); |
|
21 | 20 |
} |
22 | 21 |
|
23 | 22 |
function get_newsletter_address() { |
24 | 23 |
$cid = $_SESSION['customerinfo']['customerno']; |
25 |
- $result = db_query("SELECT email_newsletter FROM kundendaten.kunden WHERE id={$cid}"); |
|
24 |
+ $result = db_query("SELECT email_newsletter FROM kundendaten.kunden WHERE id=?", array($cid)); |
|
26 | 25 |
$r = $result->fetch(); |
27 | 26 |
return $r['email_newsletter']; |
28 | 27 |
} |
29 | 28 |
|
30 | 29 |
|
31 | 30 |
function get_latest_news() { |
32 |
- $today = strftime('%Y-%m-%d'); |
|
33 |
- $result = db_query("SELECT id, date, subject, content FROM misc.news WHERE date > '{$today}' - INTERVAL 1 YEAR ORDER BY date DESC"); |
|
31 |
+ $result = db_query("SELECT id, date, subject, content FROM misc.news WHERE date > CURDATE() - INTERVAL 1 YEAR ORDER BY date DESC"); |
|
34 | 32 |
$ret = array(); |
35 | 33 |
while ($item = $result->fetch()) { |
36 | 34 |
$ret[] = $item; |
... | ... |
@@ -42,7 +40,7 @@ function get_latest_news() { |
42 | 40 |
|
43 | 41 |
function get_news_item($id) { |
44 | 42 |
$id = (int) $id; |
45 |
- $result = db_query("SELECT date, subject, content FROM misc.news WHERE id={$id}"); |
|
43 |
+ $result = db_query("SELECT date, subject, content FROM misc.news WHERE id=?", array($id)); |
|
46 | 44 |
$ret = $result->fetch(); |
47 | 45 |
DEBUG($ret); |
48 | 46 |
return $ret; |
... | ... |
@@ -19,7 +19,7 @@ require_once("inc/security.php"); |
19 | 19 |
require_once("inc/base.php"); |
20 | 20 |
|
21 | 21 |
|
22 |
-if ($_POST['newsletter'] == 'no' || $_POST['recipient'] == "") { |
|
22 |
+if ((isset($_REQUEST['newsletter']) && $_REQUEST['newsletter'] == 'no') || (isset($_REQUEST['recipient']) && $_REQUEST['recipient'] == "")) { |
|
23 | 23 |
$sure = user_is_sure(); |
24 | 24 |
if ($sure === NULL) |
25 | 25 |
{ |
... | ... |
@@ -39,10 +39,10 @@ if ($_POST['newsletter'] == 'no' || $_POST['recipient'] == "") { |
39 | 39 |
} |
40 | 40 |
} else { |
41 | 41 |
check_form_token('newsletter'); |
42 |
- if (! check_emailaddr($_POST['recipient']) || filter_input_general($_POST['recipient']) != $_POST['recipient']) { |
|
42 |
+ if (! check_emailaddr($_REQUEST['recipient']) || filter_input_general($_REQUEST['recipient']) != $_REQUEST['recipient']) { |
|
43 | 43 |
system_failure("Keine gültige E-Mail-Adresse!"); |
44 | 44 |
} |
45 |
- set_newsletter_address($_POST['recipient']); |
|
45 |
+ set_newsletter_address($_REQUEST['recipient']); |
|
46 | 46 |
if (! $debugmode) |
47 | 47 |
header('Location: newsletter'); |
48 | 48 |
} |
... | ... |
@@ -45,22 +45,23 @@ function list_customers() |
45 | 45 |
|
46 | 46 |
function find_customers($string) |
47 | 47 |
{ |
48 |
- $string = db_escape_string(chop($string)); |
|
48 |
+ $args = array(":string" => '%'.chop($string).'%', ":number" => $string); |
|
49 | 49 |
$return = array(); |
50 | 50 |
$result = db_query("SELECT k.id FROM kundendaten.kunden AS k LEFT JOIN system.useraccounts AS u ON (k.id=u.kunde) WHERE ". |
51 |
- "firma LIKE '%{$string}%' OR firma2 LIKE '%{$string}%' OR ". |
|
52 |
- "nachname LIKE '%{$string}%' OR vorname LIKE '%{$string}%' OR ". |
|
53 |
- "adresse LIKE '%{$string}%' OR adresse2 LIKE '%{$string}%' OR ". |
|
54 |
- "ort LIKE '%{$string}%' OR pgp_id LIKE '%{$string}%' OR ". |
|
55 |
- "notizen LIKE '%{$string}%' OR email_rechnung LIKE '%{$string}%' OR ". |
|
56 |
- "email LIKE '%{$string}%' OR email_extern LIKE '%{$string}%' OR u.name LIKE '%{$string}%' OR ". |
|
57 |
- "u.username LIKE '%{$string}%' OR k.id='{$string}' OR u.uid='{$string}';"); |
|
51 |
+ "firma LIKE :string OR firma2 LIKE :string OR ". |
|
52 |
+ "nachname LIKE :string OR vorname LIKE :string OR ". |
|
53 |
+ "adresse LIKE :string OR adresse2 LIKE :string OR ". |
|
54 |
+ "ort LIKE :string OR pgp_id LIKE :string OR ". |
|
55 |
+ "notizen LIKE :string OR email_rechnung LIKE :string OR ". |
|
56 |
+ "email LIKE :string OR email_extern LIKE :string OR u.name LIKE :string OR ". |
|
57 |
+ "u.username LIKE :string OR k.id=:number OR u.uid=:number", $args); |
|
58 | 58 |
while ($entry = $result->fetch()) |
59 | 59 |
$return[] = $entry['id']; |
60 | 60 |
|
61 |
+ unset($args[':number']); |
|
61 | 62 |
$result = db_query("SELECT kunde FROM kundendaten.domains WHERE kunde IS NOT NULL AND ( |
62 |
- domainname LIKE '%{$string}%' OR CONCAT_WS('.', domainname, tld) LIKE '%{$string}%' |
|
63 |
- )"); |
|
63 |
+ domainname LIKE :string OR CONCAT_WS('.', domainname, tld) LIKE :string |
|
64 |
+ )", $args); |
|
64 | 65 |
|
65 | 66 |
while ($entry = $result->fetch()) |
66 | 67 |
$return[] = $entry['kunde']; |
... | ... |
@@ -74,7 +75,7 @@ function find_users_for_customer($id) |
74 | 75 |
$id = (int) $id; |
75 | 76 |
$return = array(); |
76 | 77 |
$result = db_query("SELECT uid, username, name FROM system.useraccounts WHERE ". |
77 |
- "kunde='{$id}';"); |
|
78 |
+ "kunde=?", array($id)); |
|
78 | 79 |
while ($entry = $result->fetch()) |
79 | 80 |
$return[] = $entry; |
80 | 81 |
|
... | ... |
@@ -197,13 +197,6 @@ function refresh_cert($id, $info, $cert, $key = NULL) |
197 | 197 |
|
198 | 198 |
$id = (int) $id; |
199 | 199 |
$oldcert = cert_details($id); |
200 |
- $cert = db_escape_string($cert); |
|
201 |
- $subject = db_escape_string(filter_input_general($info['subject'])); |
|
202 |
- $cn = db_escape_string(filter_input_general($info['cn'])); |
|
203 |
- |
|
204 |
- $valid_from = db_escape_string($info['valid_from']); |
|
205 |
- $valid_until = db_escape_string($info['valid_until']); |
|
206 |
- |
|
207 | 200 |
$args = array(":subject" => filter_input_general($info['subject']), |
208 | 201 |
":cn" => filter_input_general($info['cn']), |
209 | 202 |
":cert" => $cert, |
... | ... |
@@ -307,7 +300,6 @@ function save_csr($cn, $bits, $replace=NULL) |
307 | 300 |
list($csr, $key) = create_csr($cn, $bits); |
308 | 301 |
|
309 | 302 |
$uid = (int) $_SESSION['userinfo']['uid']; |
310 |
- $cn = db_escape_string(filter_input_hostname($cn, true)); |
|
311 | 303 |
db_query("INSERT INTO vhosts.csr (uid, hostname, bits, `replace`, csr, `key`) VALUES (:uid, :cn, :bits, :replace, :csr, :key)", |
312 | 304 |
array(":uid" => $uid, ":cn" => filter_input_hostname($cn, true), ":bits" => $bits, |
313 | 305 |
":replace" => $replace, ":csr" => $csr, ":key" => $key)); |
... | ... |
@@ -62,9 +62,8 @@ function list_vhosts() |
62 | 62 |
|
63 | 63 |
function ipv6_possible($server) |
64 | 64 |
{ |
65 |
- $serverid = (int) $server; |
|
66 |
- $servername = db_escape_string($server); |
|
67 |
- $result = db_query("SELECT v6_prefix FROM system.servers WHERE id={$serverid} OR hostname='{$servername}'"); |
|
65 |
+ $args = array(":server" => $server); |
|
66 |
+ $result = db_query("SELECT v6_prefix FROM system.servers WHERE id=:server OR hostname=:server", $args); |
|
68 | 67 |
$line = $result->fetch(); |
69 | 68 |
DEBUG("Server {$server} is v6-capable: ". ($line['v6_prefix'] != NULL)); |
70 | 69 |
return ($line['v6_prefix'] != NULL); |
... | ... |
@@ -150,7 +149,7 @@ function get_vhost_details($id) |
150 | 149 |
{ |
151 | 150 |
$id = (int) $id; |
152 | 151 |
$uid = (int) $_SESSION['userinfo']['uid']; |
153 |
- $result = db_query("SELECT vh.*,IF(dav.id IS NULL OR dav.type='svn', 0, 1) AS is_dav,IF(dav.id IS NULL OR dav.type='dav', 0, 1) AS is_svn, IF(webapps.id IS NULL, 0, 1) AS is_webapp FROM vhosts.v_vhost AS vh LEFT JOIN vhosts.dav ON (dav.vhost=vh.id) LEFT JOIN vhosts.webapps ON (webapps.vhost = vh.id) WHERE uid={$uid} AND vh.id={$id}"); |
|
152 |
+ $result = db_query("SELECT vh.*,IF(dav.id IS NULL OR dav.type='svn', 0, 1) AS is_dav,IF(dav.id IS NULL OR dav.type='dav', 0, 1) AS is_svn, IF(webapps.id IS NULL, 0, 1) AS is_webapp FROM vhosts.v_vhost AS vh LEFT JOIN vhosts.dav ON (dav.vhost=vh.id) LEFT JOIN vhosts.webapps ON (webapps.vhost = vh.id) WHERE uid=:uid AND vh.id=:id", array(":uid" => $uid, ":id" => $id)); |
|
154 | 153 |
if ($result->rowCount() != 1) |
155 | 154 |
system_failure('Interner Fehler beim Auslesen der Daten'); |
156 | 155 |
|
... | ... |
@@ -213,7 +212,7 @@ function delete_vhost($id) |
213 | 212 |
system_failure("id == 0"); |
214 | 213 |
$vhost = get_vhost_details($id); |
215 | 214 |
logger(LOG_INFO, 'modules/vhosts/include/vhosts', 'vhosts', 'Removing vhost #'.$id.' ('.$vhost['hostname'].'.'.$vhost['domain'].')'); |
216 |
- db_query("DELETE FROM vhosts.vhost WHERE id={$vhost['id']} LIMIT 1"); |
|
215 |
+ db_query("DELETE FROM vhosts.vhost WHERE id=?", array($vhost['id'])); |
|
217 | 216 |
} |
218 | 217 |
|
219 | 218 |
|
... | ... |
@@ -224,8 +223,8 @@ function make_svn_vhost($id) |
224 | 223 |
if ($id == 0) |
225 | 224 |
system_failure("id == 0"); |
226 | 225 |
logger(LOG_INFO, 'modules/vhosts/include/vhosts', 'vhosts', 'Converting vhost #'.$id.' to SVN'); |
227 |
- db_query("REPLACE INTO vhosts.dav (vhost, type) VALUES ({$id}, 'svn')"); |
|
228 |
- db_query("DELETE FROM vhosts.webapps WHERE vhost={$id}"); |
|
226 |
+ db_query("REPLACE INTO vhosts.dav (vhost, type) VALUES (?, 'svn')", array($id)); |
|
227 |
+ db_query("DELETE FROM vhosts.webapps WHERE vhost=?", array($id)); |
|
229 | 228 |
} |
230 | 229 |
|
231 | 230 |
function make_dav_vhost($id) |
... | ... |
@@ -234,8 +233,8 @@ function make_dav_vhost($id) |
234 | 233 |
if ($id == 0) |
235 | 234 |
system_failure("id == 0"); |
236 | 235 |
logger(LOG_INFO, 'modules/vhosts/include/vhosts', 'vhosts', 'Converting vhost #'.$id.' to WebDAV'); |
237 |
- db_query("REPLACE INTO vhosts.dav (vhost, type, options) VALUES ({$id}, 'dav', 'nouserfile')"); |
|
238 |
- db_query("DELETE FROM vhosts.webapps WHERE vhost={$id}"); |
|
236 |
+ db_query("REPLACE INTO vhosts.dav (vhost, type, options) VALUES (?, 'dav', 'nouserfile')", array($id)); |
|
237 |
+ db_query("DELETE FROM vhosts.webapps WHERE vhost=?", array($id)); |
|
239 | 238 |
} |
240 | 239 |
|
241 | 240 |
function make_regular_vhost($id) |
... | ... |
@@ -244,8 +243,8 @@ function make_regular_vhost($id) |
244 | 243 |
if ($id == 0) |
245 | 244 |
system_failure("id == 0"); |
246 | 245 |
logger(LOG_INFO, 'modules/vhosts/include/vhosts', 'vhosts', 'Converting vhost #'.$id.' to regular'); |
247 |
- db_query("DELETE FROM vhosts.dav WHERE vhost={$id}"); |
|
248 |
- db_query("DELETE FROM vhosts.webapps WHERE vhost={$id}"); |
|
246 |
+ db_query("DELETE FROM vhosts.dav WHERE vhost=?", array($id)); |
|
247 |
+ db_query("DELETE FROM vhosts.webapps WHERE vhost=?", array($id)); |
|
249 | 248 |
} |
250 | 249 |
|
251 | 250 |
|
... | ... |
@@ -255,12 +254,12 @@ function make_webapp_vhost($id, $webapp) |
255 | 254 |
$webapp = (int) $webapp; |
256 | 255 |
if ($id == 0) |
257 | 256 |
system_failure("id == 0"); |
258 |
- $result = db_query("SELECT displayname FROM vhosts.global_webapps WHERE id={$webapp};"); |
|
257 |
+ $result = db_query("SELECT displayname FROM vhosts.global_webapps WHERE id=?", array($webapp)); |
|
259 | 258 |
if ($result->rowCount() == 0) |
260 | 259 |
system_failure("webapp-id invalid"); |
261 | 260 |
$webapp_name = $result->fetch(PDO::FETCH_OBJ)->displayname; |
262 | 261 |
logger(LOG_INFO, 'modules/vhosts/include/vhosts', 'vhosts', 'Setting up webapp '.$webapp_name.' on vhost #'.$id); |
263 |
- db_query("REPLACE INTO vhosts.webapps (vhost, webapp) VALUES ({$id}, {$webapp})"); |
|
262 |
+ db_query("REPLACE INTO vhosts.webapps (vhost, webapp) VALUES (?, ?)", array($id, $webapp)); |
|
264 | 263 |
mail('webapps-setup@schokokeks.org', 'setup', 'setup'); |
265 | 264 |
} |
266 | 265 |
|
... | ... |
@@ -269,22 +268,26 @@ function check_hostname_collision($hostname, $domain) |
269 | 268 |
{ |
270 | 269 |
$uid = (int) $_SESSION['userinfo']['uid']; |
271 | 270 |
# Neuer vhost => Prüfe Duplikat |
272 |
- $hostnamecheck = "hostname='".db_escape_string($hostname)."'"; |
|
271 |
+ $args = array(":hostname" => $hostname, ":domain" => $domain); |
|
272 |
+ $hostnamecheck = "hostname=:hostname"; |
|
273 | 273 |
if (! $hostname) { |
274 | 274 |
$hostnamecheck = "hostname IS NULL"; |
275 |
+ unset($args[":hostname"]); |
|
275 | 276 |
} |
276 |
- $domaincheck = "domain=". (int) $domain ; |
|
277 |
+ $domaincheck = "domain=:domain"; |
|
277 | 278 |
if ($domain == -1) { |
278 |
- $domaincheck = "domain IS NULL AND user={$uid}"; |
|
279 |
+ $args[":uid"] = $uid; |
|
280 |
+ unset($args[":domain"]); |
|
281 |
+ $domaincheck = "domain IS NULL AND user=:uid"; |
|
279 | 282 |
} |
280 |
- $result = db_query("SELECT id FROM vhosts.vhost WHERE {$hostnamecheck} AND {$domaincheck}"); |
|
283 |
+ $result = db_query("SELECT id FROM vhosts.vhost WHERE {$hostnamecheck} AND {$domaincheck}", $args); |
|
281 | 284 |
if ($result->rowCount() > 0) { |
282 | 285 |
system_failure('Eine Konfiguration mit diesem Namen gibt es bereits.'); |
283 | 286 |
} |
284 | 287 |
if ($domain == -1) { |
285 | 288 |
return ; |
286 | 289 |
} |
287 |
- $result = db_query("SELECT id, vhost FROM vhosts.alias WHERE {$hostnamecheck} AND {$domaincheck}"); |
|
290 |
+ $result = db_query("SELECT id, vhost FROM vhosts.alias WHERE {$hostnamecheck} AND {$domaincheck}", $args); |
|
288 | 291 |
if ($result->rowCount() > 0) { |
289 | 292 |
$data = $result->fetch(); |
290 | 293 |
$vh = get_vhost_details($data['vhost']); |
... | ... |
@@ -297,46 +300,42 @@ function save_vhost($vhost) |
297 | 300 |
if (! is_array($vhost)) |
298 | 301 |
system_failure('$vhost kein array!'); |
299 | 302 |
$id = (int) $vhost['id']; |
300 |
- $hostname = maybe_null($vhost['hostname']); |
|
303 |
+ $hostname = $vhost['hostname']; |
|
301 | 304 |
$domain = (int) $vhost['domain_id']; |
302 | 305 |
if ($domain == 0) |
303 | 306 |
system_failure('$domain == 0'); |
304 | 307 |
if ($vhost['domain_id'] == -1) |
305 |
- $domain = 'NULL'; |
|
308 |
+ $domain = NULL; |
|
306 | 309 |
if ($id == 0) { |
307 | 310 |
check_hostname_collision($vhost['hostname'], $vhost['domain_id']); |
308 | 311 |
} |
309 |
- $docroot = maybe_null($vhost['docroot']); |
|
310 |
- $php = maybe_null($vhost['php']); |
|
311 |
- $cgi = ($vhost['cgi'] == 1 ? 1 : 0); |
|
312 |
- $ssl = maybe_null($vhost['ssl']); |
|
313 | 312 |
$hsts = (int) $vhost['hsts']; |
314 | 313 |
if ($hsts < 0) { |
315 |
- $hsts = "NULL"; |
|
314 |
+ $hsts = NULL; |
|
316 | 315 |
} |
317 |
- $suexec_user = 'NULL'; |
|
316 |
+ $suexec_user = NULL; |
|
318 | 317 |
|
319 | 318 |
$available_suexec = available_suexec_users(); |
320 | 319 |
foreach ($available_suexec AS $u) |
321 | 320 |
if ($u['uid'] == $vhost['suexec_user']) |
322 | 321 |
$suexec_user = $u['uid']; |
323 | 322 |
|
324 |
- $server = 'NULL'; |
|
323 |
+ $server = NULL; |
|
325 | 324 |
$available_servers = additional_servers(); |
326 | 325 |
if (in_array($vhost['server'], $available_servers)) { |
327 | 326 |
$server = (int) $vhost['server']; |
328 | 327 |
} |
329 | 328 |
if ($server == my_server_id()) { |
330 |
- $server = 'NULL'; |
|
329 |
+ $server = NULL; |
|
331 | 330 |
} |
332 | 331 |
|
333 |
- $logtype = maybe_null($vhost['logtype']); |
|
334 |
- $errorlog = (int) $vhost['errorlog']; |
|
335 | 332 |
if ($vhost['is_svn']) { |
336 |
- if (! $vhost['options']) $vhost['options']='nodocroot'; |
|
337 |
- else $vhost['options']+=",nodocroot"; |
|
333 |
+ if (! $vhost['options']) { |
|
334 |
+ $vhost['options']='nodocroot'; |
|
335 |
+ } else { |
|
336 |
+ $vhost['options']+=",nodocroot"; |
|
337 |
+ } |
|
338 | 338 |
} |
339 |
- $options = db_escape_string( $vhost['options'] ); |
|
340 | 339 |
|
341 | 340 |
$cert = 0; |
342 | 341 |
$certs = user_certs(); |
... | ... |
@@ -344,13 +343,13 @@ function save_vhost($vhost) |
344 | 343 |
if ($c['id'] == $vhost['cert']) |
345 | 344 |
$cert = $c['id']; |
346 | 345 |
if ($cert == 0) |
347 |
- $cert = 'NULL'; |
|
346 |
+ $cert = NULL; |
|
348 | 347 |
|
349 |
- $ipv4 = 'NULL'; |
|
348 |
+ $ipv4 = NULL; |
|
350 | 349 |
$ipv4_avail = user_ipaddrs(); |
351 | 350 |
if (in_array($vhost['ipv4'], $ipv4_avail)) |
352 | 351 |
{ |
353 |
- $ipv4 = maybe_null($vhost['ipv4']); |
|
352 |
+ $ipv4 = $vhost['ipv4']; |
|
354 | 353 |
} |
355 | 354 |
|
356 | 355 |
$autoipv6 = 1; |
... | ... |
@@ -358,15 +357,33 @@ function save_vhost($vhost) |
358 | 357 |
$autoipv6 = $vhost['autoipv6']; |
359 | 358 |
} |
360 | 359 |
|
361 |
- $stats = maybe_null($vhost['stats']); |
|
362 |
- |
|
360 |
+ $args = array(":hostname" => $hostname, |
|
361 |
+ ":domain" => $domain, |
|
362 |
+ ":docroot" => $vhost['docroot'], |
|
363 |
+ ":php" => $vhost['php'], |
|
364 |
+ ":cgi" => ($vhost['cgi'] == 1 ? 1 : 0), |
|
365 |
+ ":ssl" => $vhost['ssl'], |
|
366 |
+ ":hsts" => $hsts, |
|
367 |
+ ":suexec_user" => $suexec_user, |
|
368 |
+ ":server" => $server, |
|
369 |
+ ":logtype" => $vhost['logtype'], |
|
370 |
+ ":errorlog" => (int) $vhost['errorlog'], |
|
371 |
+ ":cert" => $cert, |
|
372 |
+ ":ipv4" => $ipv4, |
|
373 |
+ ":autoipv6" => $autoipv6, |
|
374 |
+ ":options" => $vhost['options'], |
|
375 |
+ ":stats" => $vhost['stats'], |
|
376 |
+ ":id" => $id); |
|
363 | 377 |
if ($id != 0) { |
364 | 378 |
logger(LOG_INFO, 'modules/vhosts/include/vhosts', 'vhosts', 'Updating vhost #'.$id.' ('.$vhost['hostname'].'.'.$vhost['domain'].')'); |
365 |
- db_query("UPDATE vhosts.vhost SET hostname={$hostname}, domain={$domain}, docroot={$docroot}, php={$php}, cgi={$cgi}, `ssl`={$ssl}, hsts={$hsts}, `suexec_user`={$suexec_user}, `server`={$server}, logtype={$logtype}, errorlog={$errorlog}, certid={$cert}, ipv4={$ipv4}, autoipv6={$autoipv6}, options='{$options}', stats={$stats} WHERE id={$id} LIMIT 1"); |
|
379 |
+ db_query("UPDATE vhosts.vhost SET hostname=:hostname, domain=:domain, docroot=:docroot, php=:php, cgi=:cgi, `ssl`=:ssl, hsts=:hsts, `suexec_user`=:suexec_user, `server`=:server, logtype=:logtype, errorlog=:errorlog, certid=:cert, ipv4=:ipv4, autoipv6=:autoipv6, options=:options, stats=:stats WHERE id=:id", $args); |
|
366 | 380 |
} |
367 | 381 |
else { |
382 |
+ $args[":user"] = $_SESSION['userinfo']['uid']; |
|
383 |
+ unset($args[":id"]); |
|
368 | 384 |
logger(LOG_INFO, 'modules/vhosts/include/vhosts', 'vhosts', 'Creating vhost '.$vhost['hostname'].'.'.$vhost['domain'].''); |
369 |
- $result = db_query("INSERT INTO vhosts.vhost (user, hostname, domain, docroot, php, cgi, `ssl`, hsts, `suexec_user`, `server`, logtype, errorlog, certid, ipv4, autoipv6, options, stats) VALUES ({$_SESSION['userinfo']['uid']}, {$hostname}, {$domain}, {$docroot}, {$php}, {$cgi}, {$ssl}, {$hsts}, {$suexec_user}, {$server}, {$logtype}, {$errorlog}, {$cert}, {$ipv4}, {$autoipv6}, '{$options}', {$stats})"); |
|
385 |
+ $result = db_query("INSERT INTO vhosts.vhost (user, hostname, domain, docroot, php, cgi, `ssl`, hsts, `suexec_user`, `server`, logtype, errorlog, certid, ipv4, autoipv6, options, stats) VALUES ". |
|
386 |
+ "(:user, :hostname, :domain, :docroot, :php, :cgi, :ssl, :hsts, :suexec_user, :server, :logtype, :errorlog, :cert, :ipv4, :autoipv6, :options, :stats)", $args); |
|
370 | 387 |
$id = db_insert_id(); |
371 | 388 |
} |
372 | 389 |
$oldvhost = get_vhost_details($id); |
... | ... |
@@ -389,7 +406,7 @@ function get_alias_details($id) |
389 | 406 |
{ |
390 | 407 |
$id = (int) $id; |
391 | 408 |
$uid = (int) $_SESSION['userinfo']['uid']; |
392 |
- $result = db_query("SELECT * FROM vhosts.v_alias WHERE id={$id}"); |
|
409 |
+ $result = db_query("SELECT * FROM vhosts.v_alias WHERE id=?", array($id)); |
|
393 | 410 |
|
394 | 411 |
if ($result->rowCount() != 1) |
395 | 412 |
system_failure('Interner Fehler beim Auslesen der Alias-Daten'); |
... | ... |
@@ -413,7 +430,7 @@ function delete_alias($id) |
413 | 430 |
$alias = get_alias_details($id); |
414 | 431 |
|
415 | 432 |
logger(LOG_INFO, 'modules/vhosts/include/vhosts', 'aliases', 'Removing alias #'.$id.' ('.$alias['hostname'].'.'.$alias['domain'].')'); |
416 |
- db_query("DELETE FROM vhosts.alias WHERE id={$id}"); |
|
433 |
+ db_query("DELETE FROM vhosts.alias WHERE id=?", array($id)); |
|
417 | 434 |
} |
418 | 435 |
|
419 | 436 |
function save_alias($alias) |
... | ... |
@@ -421,21 +438,26 @@ function save_alias($alias) |
421 | 438 |
if (! is_array($alias)) |
422 | 439 |
system_failure('$alias kein array!'); |
423 | 440 |
$id = (isset($alias['id']) ? (int) $alias['id'] : 0); |
424 |
- $hostname = maybe_null($alias['hostname']); |
|
425 | 441 |
$domain = (int) $alias['domain_id']; |
426 | 442 |
if ($domain == 0) |
427 | 443 |
system_failure('$domain == 0'); |
428 | 444 |
if ($alias['domain_id'] == -1) |
429 |
- $domain = 'NULL'; |
|
445 |
+ $domain = NULL; |
|
430 | 446 |
$vhost = get_vhost_details( (int) $alias['vhost']); |
431 |
- $options = db_escape_string( $alias['options'] ); |
|
447 |
+ $args = array(":hostname" => $alias['hostname'], |
|
448 |
+ ":domain" => $domain, |
|
449 |
+ ":vhost" => $vhost['id'], |
|
450 |
+ ":options" => $alias['options'], |
|
451 |
+ ":id" => $id); |
|
432 | 452 |
if ($id == 0) { |
453 |
+ unset($args[":id"]); |
|
433 | 454 |
logger(LOG_INFO, 'modules/vhosts/include/vhosts', 'aliases', 'Creating alias '.$alias['hostname'].'.'.$alias['domain'].' for VHost '.$vhost['id']); |
434 |
- db_query("INSERT INTO vhosts.alias (hostname, domain, vhost, options) VALUES ({$hostname}, {$domain}, {$vhost['id']}, '{$options}')"); |
|
455 |
+ db_query("INSERT INTO vhosts.alias (hostname, domain, vhost, options) VALUES (:hostname, :domain, :vhost, :options)", $args); |
|
435 | 456 |
} |
436 | 457 |
else { |
458 |
+ unset($args[":vhost"]); |
|
437 | 459 |
logger(LOG_INFO, 'modules/vhosts/include/vhosts', 'aliases', 'Updating alias #'.$id.' ('.$alias['hostname'].'.'.$alias['domain'].')'); |
438 |
- db_query("UPDATE vhosts.alias SET hostname={$hostname}, domain={$domain}, options='{$options}' WHERE id={$id} LIMIT 1"); |
|
460 |
+ db_query("UPDATE vhosts.alias SET hostname=:hostname, domain=:domain, options=:options WHERE id=:id", $args); |
|
439 | 461 |
} |
440 | 462 |
} |
441 | 463 |
|
... | ... |
@@ -443,7 +465,7 @@ function save_alias($alias) |
443 | 465 |
function available_suexec_users() |
444 | 466 |
{ |
445 | 467 |
$uid = (int) $_SESSION['userinfo']['uid']; |
446 |
- $result = db_query("SELECT uid, username FROM vhosts.available_users LEFT JOIN vhosts.v_useraccounts ON (uid = suexec_user) WHERE mainuser={$uid}"); |
|
468 |
+ $result = db_query("SELECT uid, username FROM vhosts.available_users LEFT JOIN vhosts.v_useraccounts ON (uid = suexec_user) WHERE mainuser=?", array($uid)); |
|
447 | 469 |
$ret = array(); |
448 | 470 |
while ($i = $result->fetch()) |
449 | 471 |
$ret[] = $i; |
... | ... |
@@ -457,7 +479,7 @@ function available_suexec_users() |
457 | 479 |
function user_ipaddrs() |
458 | 480 |
{ |
459 | 481 |
$uid = (int) $_SESSION['userinfo']['uid']; |
460 |
- $result = db_query("SELECT ipaddr FROM vhosts.ipaddr_available WHERE uid={$uid}"); |
|
482 |
+ $result = db_query("SELECT ipaddr FROM vhosts.ipaddr_available WHERE uid=?", array($uid)); |
|
461 | 483 |
$ret = array(); |
462 | 484 |
while ($i = $result->fetch()) |
463 | 485 |
{ |
... | ... |
@@ -27,12 +27,13 @@ $uid = (int) $_SESSION['userinfo']['uid']; |
27 | 27 |
|
28 | 28 |
if (isset($_POST['freq']) && in_array($_POST['freq'],array("day","week","month"))) { |
29 | 29 |
check_form_token('freewvs_freq'); |
30 |
- db_query("REPLACE INTO qatools.freewvs (user,freq) VALUES ({$uid},'{$_POST['freq']}');"); |
|
30 |
+ $args = array(":uid" => $uid, ":freq" => $_POST['freq']); |
|
31 |
+ db_query("REPLACE INTO qatools.freewvs (user,freq) VALUES (:uid,:freq)", $args); |
|
31 | 32 |
header("Location: freewvs"); |
32 | 33 |
die(); |
33 | 34 |
} |
34 | 35 |
|
35 |
-$result = db_query("SELECT freq FROM qatools.v_freewvs WHERE uid={$uid};"); |
|
36 |
+$result = db_query("SELECT freq FROM qatools.v_freewvs WHERE uid=?", array($uid)); |
|
36 | 37 |
$result=$result->fetch(); |
37 | 38 |
$freq=$result['freq']; |
38 | 39 |
|
... | ... |
@@ -20,7 +20,7 @@ require_once('inc/base.php'); |
20 | 20 |
function load_results() |
21 | 21 |
{ |
22 | 22 |
$uid = (int) $_SESSION['userinfo']['uid']; |
23 |
- $result = db_query("SELECT directory, docroot, lastcheck, appname, version, state, safeversion, vulninfo FROM qatools.freewvs_results WHERE uid={$uid}"); |
|
23 |
+ $result = db_query("SELECT directory, docroot, lastcheck, appname, version, state, safeversion, vulninfo FROM qatools.freewvs_results WHERE uid=?", array($uid)); |
|
24 | 24 |
$ret = array(); |
25 | 25 |
while ($line = $result->fetch()) { |
26 | 26 |
array_push($ret, $line); |
... | ... |
@@ -30,7 +30,7 @@ function load_results() |
30 | 30 |
|
31 | 31 |
function get_upgradeinstructions($appname) { |
32 | 32 |
$appname = db_escape_string($appname); |
33 |
- $result = db_query("SELECT url FROM qatools.freewvs_upgradeinstructions WHERE appname='{$appname}' LIMIT 1"); |
|
33 |
+ $result = db_query("SELECT url FROM qatools.freewvs_upgradeinstructions WHERE appname=?", array($appname)); |
|
34 | 34 |
if ($result->rowCount() > 0) { |
35 | 35 |
$tmp = $result->fetch(); |
36 | 36 |
return $tmp[0]; |
... | ... |
@@ -20,12 +20,12 @@ function create_new_webapp($appname, $directory, $url, $data) |
20 | 20 |
{ |
21 | 21 |
if (directory_in_use($directory)) |
22 | 22 |
system_failure('Sie haben erst kürzlich eine Anwendung in diesem Verzeichnis installieren lassen. Aus Sicherheitsgründen können Sie in diesem Verzeichnis am selben Tag nicht schon wieder eine Anwendung installieren.'); |
23 |
- $username = db_escape_string($_SESSION['userinfo']['username']); |
|
24 |
- $appname = db_escape_string($appname); |
|
25 |
- $directory = db_escape_string($directory); |
|
26 |
- $url = db_escape_string($url); |
|
27 |
- $data = db_escape_string($data); |
|
28 |
- db_query("INSERT INTO vhosts.webapp_installer (appname, directory, url, state, username, data) VALUES ('{$appname}', '{$directory}', '{$url}', 'new', '{$username}', '{$data}')"); |
|
23 |
+ $args = array(":username" => $_SESSION['userinfo']['username'], |
|
24 |
+ ":appname" => $appname, |
|
25 |
+ ":dir" => $directory, |
|
26 |
+ ":url" => $url, |
|
27 |
+ ":data" => $data); |
|
28 |
+ db_query("INSERT INTO vhosts.webapp_installer (appname, directory, url, state, username, data) VALUES (:appname, :dir, :url, 'new', :username, :data)", $args); |
|
29 | 29 |
} |
30 | 30 |
|
31 | 31 |
|
... | ... |
@@ -33,17 +33,16 @@ function request_update($appname, $directory, $url) |
33 | 33 |
{ |
34 | 34 |
if (directory_in_use($directory)) |
35 | 35 |
system_failure('Sie haben erst kürzlich eine Anwendung in diesem Verzeichnis installieren lassen oder ein Update in diesem Verzeichnis angefordert. Bitte warten Sie bis diese Aktion durchgeführt wurde.'); |
36 |
- $username = db_escape_string($_SESSION['userinfo']['username']); |
|
37 |
- $appname = db_escape_string($appname); |
|
38 |
- $directory = db_escape_string($directory); |
|
39 |
- $url = maybe_null(db_escape_string($url)); |
|
40 |
- db_query("INSERT INTO vhosts.webapp_installer (appname, directory, url, state, username) VALUES ('{$appname}', '{$directory}', {$url}, 'old', '{$username}')"); |
|
36 |
+ $args = array(":username" => $_SESSION['userinfo']['username'], |
|
37 |
+ ":appname" => $appname, |
|
38 |
+ ":dir" => $directory, |
|
39 |
+ ":url" => $url); |
|
40 |
+ db_query("INSERT INTO vhosts.webapp_installer (appname, directory, url, state, username) VALUES (:appname, :dir, :url, 'old', :username)", $args); |
|
41 | 41 |
} |
42 | 42 |
|
43 | 43 |
function directory_in_use($directory) |
44 | 44 |
{ |
45 |
- $directory = db_escape_string($directory); |
|
46 |
- $result = db_query("SELECT id FROM vhosts.webapp_installer WHERE (state IN ('new','old') OR DATE(lastchange)=CURDATE()) AND directory='{$directory}'"); |
|
45 |
+ $result = db_query("SELECT id FROM vhosts.webapp_installer WHERE (state IN ('new','old') OR DATE(lastchange)=CURDATE()) AND directory=?", array($directory)); |
|
47 | 46 |
if ($result->rowCount() > 0) |
48 | 47 |
return true; |
49 | 48 |
return false; |
... | ... |
@@ -101,8 +100,7 @@ function get_url_for_dir($docroot, $cutoff = '') |
101 | 100 |
{ |
102 | 101 |
if (substr($docroot, -1) == '/') |
103 | 102 |
$docroot = substr($docroot, 0, -1); |
104 |
- $docroot = db_escape_string($docroot); |
|
105 |
- $result = db_query("SELECT `ssl`, IF(FIND_IN_SET('aliaswww', options), CONCAT('www.',fqdn), fqdn) AS fqdn FROM vhosts.v_vhost WHERE docroot IN ('{$docroot}', '{$docroot}/') LIMIT 1"); |
|
103 |
+ $result = db_query("SELECT `ssl`, IF(FIND_IN_SET('aliaswww', options), CONCAT('www.',fqdn), fqdn) AS fqdn FROM vhosts.v_vhost WHERE docroot IN (?, ?)", array($docroot, $docroot.'/')); |
|
106 | 104 |
if ($result->rowCount() < 1) |
107 | 105 |
{ |
108 | 106 |
if (!strstr($docroot, '/')) |
... | ... |
@@ -122,7 +120,7 @@ function create_webapp_mysqldb($application, $sitename) |
122 | 120 |
// dependet auf das mysql-modul |
123 | 121 |
require_once('modules/mysql/include/mysql.php'); |
124 | 122 |
|
125 |
- $username = db_escape_string($_SESSION['userinfo']['username']); |
|
123 |
+ $username = $_SESSION['userinfo']['username']; |
|
126 | 124 |
$description = "Automatisch erzeugte Datenbank für {$application} ({$sitename})"; |
127 | 125 |
|
128 | 126 |
// zuerst versuchen wir username_webappname. Wenn das nicht klappt, dann wird hochgezählt |
... | ... |
@@ -38,7 +38,7 @@ function find_role($login, $password, $i_am_admin = False) |
38 | 38 |
$uid = (int) $login; |
39 | 39 |
if ($uid == 0) |
40 | 40 |
$uid = 'NULL'; |
41 |
- $result = db_query("SELECT username, passwort AS password, kundenaccount AS `primary`, status, ((SELECT acc.uid FROM system.v_useraccounts AS acc LEFT JOIN system.gruppenzugehoerigkeit USING (uid) LEFT JOIN system.gruppen AS g ON (g.gid=gruppenzugehoerigkeit.gid) WHERE g.name='admin' AND acc.uid=u.uid) IS NOT NULL) AS admin FROM system.v_useraccounts AS u LEFT JOIN system.passwoerter USING(uid) WHERE u.uid={$uid} OR username='{$login}' LIMIT 1;"); |
|
41 |
+ $result = db_query("SELECT username, passwort AS password, kundenaccount AS `primary`, status, ((SELECT acc.uid FROM system.v_useraccounts AS acc LEFT JOIN system.gruppenzugehoerigkeit USING (uid) LEFT JOIN system.gruppen AS g ON (g.gid=gruppenzugehoerigkeit.gid) WHERE g.name='admin' AND acc.uid=u.uid) IS NOT NULL) AS admin FROM system.v_useraccounts AS u LEFT JOIN system.passwoerter USING(uid) WHERE u.uid=:uid OR username=:login LIMIT 1;", array(":uid" => $uid, ":login" => $login)); |
|
42 | 42 |
if (@$result->rowCount() > 0) |
43 | 43 |
{ |
44 | 44 |
$entry = $result->fetch(PDO::FETCH_OBJ); |
... | ... |
@@ -68,9 +68,9 @@ function find_role($login, $password, $i_am_admin = False) |
68 | 68 |
// Customer? |
69 | 69 |
$customerno = (int) $login; |
70 | 70 |
$pass = sha1($password); |
71 |
- $result = db_query("SELECT passwort AS password FROM kundendaten.kunden WHERE status=0 AND id={$customerno} AND passwort='{$pass}';"); |
|
71 |
+ $result = db_query("SELECT passwort AS password FROM kundendaten.kunden WHERE status=0 AND id=:customerno AND passwort=:pass", array(":customerno" => $customerno, ":pass" => $pass)); |
|
72 | 72 |
if ($i_am_admin) |
73 |
- $result = db_query("SELECT passwort AS password FROM kundendaten.kunden WHERE status=0 AND id={$customerno}"); |
|
73 |
+ $result = db_query("SELECT passwort AS password FROM kundendaten.kunden WHERE status=0 AND id=?", array($customerno)); |
|
74 | 74 |
if (@$result->rowCount() > 0) |
75 | 75 |
{ |
76 | 76 |
return ROLE_CUSTOMER; |
... | ... |
@@ -78,7 +78,7 @@ function find_role($login, $password, $i_am_admin = False) |
78 | 78 |
|
79 | 79 |
// Sub-User |
80 | 80 |
|
81 |
- $result = db_query("SELECT password FROM system.subusers WHERE username='{$login}'"); |
|
81 |
+ $result = db_query("SELECT password FROM system.subusers WHERE username=?", array($login)); |
|
82 | 82 |
if (@$result->rowCount() > 0) |
83 | 83 |
{ |
84 | 84 |
$entry = $result->fetch(PDO::FETCH_OBJ); |
... | ... |
@@ -111,7 +111,7 @@ function find_role($login, $password, $i_am_admin = False) |
111 | 111 |
} |
112 | 112 |
} |
113 | 113 |
} |
114 |
- $result = db_query("SELECT cryptpass FROM mail.courier_mailaccounts WHERE account='{$account}' LIMIT 1;"); |
|
114 |
+ $result = db_query("SELECT cryptpass FROM mail.courier_mailaccounts WHERE account=?", array($account)); |
|
115 | 115 |
if (@$result->rowCount() > 0) |
116 | 116 |
{ |
117 | 117 |
$entry = $result->fetch(PDO::FETCH_OBJ); |
... | ... |
@@ -127,7 +127,7 @@ function find_role($login, $password, $i_am_admin = False) |
127 | 127 |
|
128 | 128 |
// virtueller Mail-Account |
129 | 129 |
$account = $login; |
130 |
- $result = db_query("SELECT cryptpass FROM mail.courier_virtual_accounts WHERE account='{$account}' LIMIT 1;"); |
|
130 |
+ $result = db_query("SELECT cryptpass FROM mail.courier_virtual_accounts WHERE account=?", array($account)); |
|
131 | 131 |
if (@$result->rowCount() > 0) |
132 | 132 |
{ |
133 | 133 |
$entry = $result->fetch(PDO::FETCH_OBJ); |
... | ... |
@@ -157,13 +157,13 @@ function get_customer_info($customer) |
157 | 157 |
if ($customerno != 0) |
158 | 158 |
{ |
159 | 159 |
DEBUG('Looking up customerinfo for customer no. '.$customerno); |
160 |
- $result = db_query("SELECT id, anrede, firma, CONCAT_WS(' ', vorname, nachname) AS name, COALESCE(email,email_rechnung,email_extern) AS email FROM kundendaten.kunden WHERE id={$customerno} LIMIT 1;"); |
|
160 |
+ $result = db_query("SELECT id, anrede, firma, CONCAT_WS(' ', vorname, nachname) AS name, COALESCE(email,email_rechnung,email_extern) AS email FROM kundendaten.kunden WHERE id=?", array($customerno)); |
|
161 | 161 |
} |
162 | 162 |
else |
163 | 163 |
{ |
164 |
- $username = db_escape_string($customer); |
|
164 |
+ $username = $customer; |
|
165 | 165 |
DEBUG('looking up customer info for username '.$username); |
166 |
- $result = db_query("SELECT id, anrede, firma, CONCAT_WS(' ', vorname, nachname) AS name, COALESCE(email,email_rechnung,email_extern) AS email FROM kundendaten.kunden AS k JOIN system.v_useraccounts AS u ON (u.kunde=k.id) WHERE u.username='{$username}'"); |
|
166 |
+ $result = db_query("SELECT id, anrede, firma, CONCAT_WS(' ', vorname, nachname) AS name, COALESCE(email,email_rechnung,email_extern) AS email FROM kundendaten.kunden AS k JOIN system.v_useraccounts AS u ON (u.kunde=k.id) WHERE u.username=?", array($username)); |
|
167 | 167 |
} |
168 | 168 |
if (@$result->rowCount() == 0) |
169 | 169 |
system_failure("Konnte Kundendaten nicht auslesen!"); |
... | ... |
@@ -181,7 +181,7 @@ function get_customer_info($customer) |
181 | 181 |
|
182 | 182 |
function get_subuser_info($username) |
183 | 183 |
{ |
184 |
- $result = db_query("SELECT uid, modules FROM system.subusers WHERE username='{$username}'"); |
|
184 |
+ $result = db_query("SELECT uid, modules FROM system.subusers WHERE username=?", array($username)); |
|
185 | 185 |
if ($result->rowCount() < 1) |
186 | 186 |
{ |
187 | 187 |
logger(LOG_ERR, "session/checkuser", "login", "error reading subuser's data: »{$username}«"); |
... | ... |
@@ -196,9 +196,8 @@ function get_subuser_info($username) |
196 | 196 |
|
197 | 197 |
function get_user_info($username) |
198 | 198 |
{ |
199 |
- $username = db_escape_string($username); |
|
200 | 199 |
$result = db_query("SELECT kunde AS customerno, username, uid, homedir, name, server |
201 |
- FROM system.v_useraccounts WHERE username='{$username}' OR uid='{$username}' LIMIT 1"); |
|
200 |
+ FROM system.v_useraccounts WHERE username=:username OR uid=:username", array(":username" => $username)); |
|
202 | 201 |
if ($result->rowCount() < 1) |
203 | 202 |
{ |
204 | 203 |
logger(LOG_ERR, "session/checkuser", "login", "error reading user's data: »{$username}«"); |
... | ... |
@@ -218,30 +217,30 @@ function get_user_info($username) |
218 | 217 |
function set_customer_verified($customerno) |
219 | 218 |
{ |
220 | 219 |
$customerno = (int) $customerno; |
221 |
- db_query("UPDATE kundendaten.kunden SET status=0 WHERE id={$customerno};"); |
|
220 |
+ db_query("UPDATE kundendaten.kunden SET status=0 WHERE id=?", array($customerno)); |
|
222 | 221 |
logger(LOG_INFO, "session/checkuser", "register", "set customer's status to 0."); |
223 | 222 |
} |
224 | 223 |
|
225 | 224 |
function set_customer_lastlogin($customerno) |
226 | 225 |
{ |
227 | 226 |
$customerno = (int) $customerno; |
228 |
- db_query("UPDATE kundendaten.kunden SET lastlogin=NOW() WHERE id={$customerno};"); |
|
227 |
+ db_query("UPDATE kundendaten.kunden SET lastlogin=NOW() WHERE id=?", array($customerno)); |
|
229 | 228 |
} |
230 | 229 |
|
231 | 230 |
function set_customer_password($customerno, $newpass) |
232 | 231 |
{ |
233 | 232 |
$customerno = (int) $customerno; |
234 | 233 |
$newpass = sha1($newpass); |
235 |
- db_query("UPDATE kundendaten.kunden SET passwort='$newpass' WHERE id='".$customerno."' LIMIT 1"); |
|
234 |
+ db_query("UPDATE kundendaten.kunden SET passwort=:newpass WHERE id=:customerno", array(":newpass" => $newpass, ":customerno" => $customerno)); |
|
236 | 235 |
logger(LOG_INFO, "session/checkuser", "pwchange", "changed customer's password."); |
237 | 236 |
} |
238 | 237 |
|
239 | 238 |
function set_subuser_password($subuser, $newpass) |
240 | 239 |
{ |
241 |
- $subuser = db_escape_string($subuser); |
|
242 |
- $uid = (int) $_SESSION['userinfo']['uid']; |
|
243 |
- $newpass = sha1($newpass); |
|
244 |
- db_query("UPDATE system.subusers SET password='$newpass' WHERE username='{$subuser}' AND uid={$uid}"); |
|
240 |
+ $args = array(":subuser" => $subuser, |
|
241 |
+ ":uid" => (int) $_SESSION['userinfo']['uid'], |
|
242 |
+ ":newpass" => sha1($newpass)); |
|
243 |
+ db_query("UPDATE system.subusers SET password=:newpass WHERE username=:subuser AND uid=:uid", $args); |
|
245 | 244 |
logger(LOG_INFO, "session/checkuser", "pwchange", "changed subuser's password."); |
246 | 245 |
} |
247 | 246 |
|
... | ... |
@@ -260,14 +259,14 @@ function set_systemuser_password($uid, $newpass) |
260 | 259 |
$salt = random_string(8); |
261 | 260 |
$newpass = crypt($newpass, "\$1\${$salt}\$"); |
262 | 261 |
} |
263 |
- db_query("UPDATE system.passwoerter SET passwort='$newpass' WHERE uid='".$uid."' LIMIT 1"); |
|
262 |
+ db_query("UPDATE system.passwoerter SET passwort=:newpass WHERE uid=:uid", array(":newpass" => $newpass, ":uid" => $uid)); |
|
264 | 263 |
logger(LOG_INFO, "session/checkuser", "pwchange", "changed user's password."); |
265 | 264 |
} |
266 | 265 |
|
267 | 266 |
|
268 | 267 |
function user_for_mailaccount($account) |
269 | 268 |
{ |
270 |
- $result = db_query("SELECT uid FROM mail.courier_mailaccounts WHERE account='{$account}' LIMIT 1;"); |
|
269 |
+ $result = db_query("SELECT uid FROM mail.courier_mailaccounts WHERE account=?", array($account)); |
|
271 | 270 |
if ($result->rowCount() != 1) { |
272 | 271 |
system_failure('Diese Adresse ist herrenlos?!'); |
273 | 272 |
} |
... | ... |
@@ -277,7 +276,7 @@ function user_for_mailaccount($account) |
277 | 276 |
|
278 | 277 |
function user_for_vmail_account($account) |
279 | 278 |
{ |
280 |
- $result = db_query("SELECT useraccount FROM mail.v_vmail_accounts WHERE CONCAT_WS('@', local, domainname)='{$account}' LIMIT 1;"); |
|
279 |
+ $result = db_query("SELECT useraccount FROM mail.v_vmail_accounts WHERE CONCAT_WS('@', local, domainname)=?", array($account)); |
|
281 | 280 |
if ($result->rowCount() != 1) { |
282 | 281 |
system_failure('Diese Adresse ist herrenlos?!'); |
283 | 282 |
} |
... | ... |
@@ -298,7 +297,7 @@ function setup_session($role, $useridentity) |
298 | 297 |
$_SESSION['restrict_modules'] = explode(',', $info['modules']); |
299 | 298 |
$_SESSION['role'] = ROLE_SYSTEMUSER | ROLE_SUBUSER; |
300 | 299 |
$_SESSION['subuser'] = $useridentity; |
301 |
- $data = db_query("SELECT kundenaccount FROM system.useraccounts WHERE username='{$info['username']}'"); |
|
300 |
+ $data = db_query("SELECT kundenaccount FROM system.useraccounts WHERE username=?", array($info['username'])); |
|
302 | 301 |
if ($entry = $data->fetch) { |
303 | 302 |
if ($entry['kundenaccount'] == 1) { |
304 | 303 |
$customer = get_customer_info($_SESSION['userinfo']['username']); |
305 | 304 |