Skip to content

Commit b87fc25

Browse files
author
Marius Burkard
committed
- fixed hash generation for remote password
1 parent eabdde5 commit b87fc25

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

interface/lib/classes/remoting.inc.php

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -128,19 +128,22 @@ public function login($username, $password, $client_login = false)
128128
$app->db->query($sql, $remote_session,$remote_userid,$remote_functions,$tstamp);
129129
return $remote_session;
130130
} else {
131-
$sql = "SELECT * FROM remote_user WHERE remote_username = ? and remote_password = ?";
132-
$remote_user = $app->db->queryOneRecord($sql, $username, $app->auth->crypt_password($password));
133-
if(!$remote_user) {
134-
// fallback to md5
135-
$sql = "SELECT * FROM remote_user WHERE remote_username = ? and remote_password = ?";
136-
$remote_user = $app->db->queryOneRecord($sql, $username, md5($password));
137-
if($remote_user) {
131+
$sql = "SELECT * FROM remote_user WHERE remote_username = ?";
132+
$remote_user = $app->db->queryOneRecord($sql, $username);
133+
if($remote_user) {
134+
if(substr($remote_user['remote_password'], 0, 1) === '$') {
135+
if(crypt(stripslashes($password), $remote_user['remote_password']) != $remote_user['remote_password']) {
136+
$remote_user = null;
137+
}
138+
} elseif(md5($password) == $remote_user['remote_password']) {
138139
// update hash algo
139140
$sql = 'UPDATE `remote_user` SET `remote_password` = ? WHERE `remote_username` = ?';
140141
$app->db->query($sql, $app->auth->crypt_password($password), $username);
142+
} else {
143+
$remote_user = null;
141144
}
142145
}
143-
if($remote_user['remote_userid'] > 0) {
146+
if($remote_user && $remote_user['remote_userid'] > 0) {
144147
if (trim($remote_user['remote_ips']) != '') {
145148
$allowed_ips = explode(',',$remote_user['remote_ips']);
146149
foreach($allowed_ips as $i => $allowed) {

0 commit comments

Comments
 (0)