|
|
|
| После внесения данных (username ...... u_password) в базу данных(MySQL) из файла
обнаружила ,
что у пользователей ,которые вводились через Аdmin
поле u_password в MySQL закодированно,
а у пользователей которые вводились через файл – нет
как происходит закодированние и где ? | |
|
|
|
|
|
|
|
для: Elina
(04.07.2005 в 14:41)
| | Правельно в целях безопасности возможно происходит шифрование паролей. Ведь всегда есть возможность SQL инжекции.
НО было бы лучше если вы приведете код. | |
|
|
|
|
|
|
|
для: Akira
(04.07.2005 в 14:45)
| | Akira ,
можно объяснить что такое SQL инжекция | |
|
|
|
|
|
|
|
для: Elina
(04.07.2005 в 15:29)
| | Инжекция - это внедрение чужеродного кода в ваш собственный. Например при не правельной проверке можно внедрить sql запрос который выведет все пароли и логины из бд. | |
|
|
|
|
|
|
|
для: Elina
(04.07.2005 в 15:29)
| | Подробнее об SQL-инъекциях можно почитать в статье по ссылке http://www.softtime.ru/info/articlephp.php?id_article=35 | |
|
|
|
|
|
|
|
для: Elina
(04.07.2005 в 14:41)
| | По-видимому при внесении через админ, кодирование происходит в скрипте,
а при внесении из файла пароли как и есть вставляются в том виде как и в файле | |
|
|
|
|
|
|
|
для: moLodoi
(04.07.2005 в 15:07)
| | moLodoi,
так и есть ,но кроме того нельзя сделать Login пользователю
который был внесён через файл
искала в скрипте ,но так и не нашла где происходит закодирование | |
|
|
|
|
|
|
|
для: Elina
(04.07.2005 в 16:00)
| | я бы предположил, что перед выполнением запроса на добавление пользователя происходит что-то типа:
или прямо в запросе
$sql="INSERT INTO table VALUES (0, '$login', '".md5($pass)."' и т.д.
|
А при входе пользователя его пароль сначала шифруется таким же образом как и при регистрации и сравнивается уже в зашифрованном виде. | |
|
|
|
|
|
|
|
для: Loki
(04.07.2005 в 17:07)
| | Необязательно, насколько мне помниться в Мускуле есть встроенная система шифрования. LiteForum2 имеет именно ее, если мне не изменяет память. | |
|
|
|
|
|
|
|
для: Akira
(04.07.2005 в 17:18)
| | Тогда:
$sql="INSERT INTO table VALUES (0, '$login', PASSWORD('$pass') и т.д.
|
В любом случае, команда шифрования подается из php, так как пароли из файла при добавлении не зашифровались. | |
|
|
|
|
|
|
|
для: Loki
(04.07.2005 в 17:49)
| | Конечно из PHP, а откуда еще. И 99% это MD5 а логин нельзя внести, потому что система правильно написана и проверяет что такой логин уже есть в системе, значит нельзя его больше добавлять. | |
|
|
|
|
|
|
|
для: Loki
(04.07.2005 в 17:49)
| | Помимо PASSWORD() в MySQL ещё много различных функций шифрования, в том числе и MD5(), чтобы определить с чем имеет дело Elina нужно глянуть на дамп. | |
|
|
|
|
|
|
|
для: cheops
(04.07.2005 в 20:59)
| | ....извеняюсь за заминку ......
проверила в базе данных - система позволяет вводить уже существующий login,
ошибку не даёт .Но при создании таблицы поставлен ключ (КЕУ)
CREATE TABLE 'users' (
'user_id' int(11) NOT NULL auto_increment,
'name' varchar(60) NOT NULL default '',
'username' varchar(25) NOT NULL default '',
..........
........
'points' int(10) default '0',
PRIMARY KEY ('user_id'),
KEY 'uid' ('user_id'),
KEY 'uname' ('username'),
KEY 'user_session_time' ('user_session_time')
) TYPE=MyISAM AUTO_INCREMENT=1 ;
как это исправить ,т.е где нужно ещё добавить проверку
PS очень странно
1) сделала дамп из порталя (через admin) - в списке нет тех пользователей
которых я внесла через файл,но .....
2) но если сделать дамп MySQL то они есть
выходит нет синхронности между порталем и MySQL - если работать с MySQL
на прямую
как теперь это исправить | |
|
|
|
|
автор: Саня_ (24.07.2005 в 14:18) |
|
|
для: cheops
(04.07.2005 в 20:59)
| | >Помимо PASSWORD() в MySQL ещё много различных функций шифрования,
>в том числе и MD5()...
А есть ли BLOWFISH в MySQL'е?
Если верить этому - http://dev.mysql.com/doc/mysql/en/encryption-functions.html - то нет. | |
|
|
|
|
|
|
|
для: Саня_
(24.07.2005 в 14:18)
| | Нет, но есть мощный метод AES со 128-битным ключём. | |
|
|
|