Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Подключение к БД MYSQL через хеш / 14 сообщений из 14, страница 1 из 1
08.06.2013, 14:45
    #38291285
bulat_ofm1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение к БД MYSQL через хеш
Здравствуйте все,
не знаю как правильно реализовать логику подключения к БД mysql.

db_fns.php

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
function db_connect()
{    
    $host = 'localhost';
    $user = 'root_user';
    $pswd = 'root_passwd';
    $db = 'db_name';
  
    $connection = mysql_connect($host, $user, $pswd);       
    mysql_query('SET NAMES utf8');
    
    if(!$connection || !mysql_select_db($db, $connection))
    {
        return false;
    } 
    return $connection;
  }




Пароль хранить в текстовом виде - большая дыра в безопасности.
Посоветуйте или скиньте линки на пошаговую инструкцию - как подключиться к БД используя хешированный пароль.

Некоторые советуют хранить файл паролей нужно хранить за пределами document_root.
Но как ее там хранить в хешированном виде? Как тогда на нее ссылаться?
Как такая логика вообще реализуется - подключение к БД через root для возврата данных,
никакой логики аутентификации для конекта кроме указанного скрипта не используется.

С уважением!
...
Рейтинг: 0 / 0
08.06.2013, 16:17
    #38291309
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение к БД MYSQL через хеш
А делать авторизацию на хешу это не дыра?
...
Рейтинг: 0 / 0
08.06.2013, 16:18
    #38291310
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение к БД MYSQL через хеш
По крайней мере со стороны MySQL.
Да и какая разница бы была тогда, завладеют вашим паролем или хешем.
...
Рейтинг: 0 / 0
08.06.2013, 16:56
    #38291329
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение к БД MYSQL через хеш
bulat_ofm1,

Если уж так, то хранить в нормальном виде (как сказал Hett, а какая разница украдут пароль или хэш, если по хэшу можно было бы залогиниться?). Но, если хочеться как можно безопаснее, то лучше закинуть пароль в отдельный файл (выполняемый типа .php .py и т.д.) и закрыть к каталогу с этим файлом доступ из вне (через htaccess или лучше, если есть возможность в настройках apache), что бы в случае падения используемого интерпретатора файл в чистом виде не отдался пользователю (насколько я помню такое бывает... точно знаю бывало раньше, сам на такое попадал).

P.S. Знатоки, поделитесь идеями, если честно, самого вопрос заинтересовал... А если заморочиться на этом, как сделать безопаснее всего. Что бы только малый процент реально крутых взломщиков мог добраться до данных (разумеется, исключая тот вариант, что взломан полностью сервер, и человек имеет доступ к файлам баз и всё такое...) :)
...
Рейтинг: 0 / 0
08.06.2013, 18:28
    #38291360
phpz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение к БД MYSQL через хеш
Програмёр,

1. Можно отрубить доступ к базе извне (skip-networking), если база и веб сервер на одной машине крутятся.
2. Допустим утянули вот такой файл с паролем:
Код: php
1.
2.
3.
4.
<?php
$db_user = "user";
$db_pwd = "password";
?>


В проекте обычно десятки, если не сотни, файлов и ничто не мешает "спрятать" соль в каком-нибудь малозаметном подключаемом файле:
Код: php
1.
2.
3.
...
$db_salt = "blabla";
...


В самом скрипте делаем некоторые "махинации" перед тем, как подключиться, напр:
Код: php
1.
2.
$mysql_pwd = $db_salt . md5($db_pwd);
mysql_connect(...);


В базе хранится хеш PWD($mysql_pwd) и знание открытого пароля ничего не дает. Это, конечно
авторисключая тот вариант, что взломан полностью сервер, и человек имеет доступ к файлам баз и всё такое...
Как говорится, не клади все яйца в одну корзину.
...
Рейтинг: 0 / 0
08.06.2013, 19:18
    #38291386
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение к БД MYSQL через хеш
Я вас умоляю, если злоумышленник смог прочитать файл паролей, то и остальные файлы он прочитает.
...
Рейтинг: 0 / 0
08.06.2013, 19:41
    #38291406
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение к БД MYSQL через хеш
HettЯ вас умоляю, если злоумышленник смог прочитать файл паролей, то и остальные файлы он прочитает.

А такая фишка случаем не прокатит(?):
выставить права на файл 700, и владельца apache (или php, смотря от какого юзера скрипты запускаются). Точно не помню, но по сути любой другой пользователь не увидит файл или если увидит, не сможет просмотреть...

Это ведь сможет злоумышленника удержать хоть как-то, или обходится просто?
...
Рейтинг: 0 / 0
08.06.2013, 20:11
    #38291432
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение к БД MYSQL через хеш
ПрограмёрА такая фишка случаем не прокатит(?):
выставить права на файл 700, и владельца apache (или php, смотря от какого юзера скрипты запускаются).Тогда уж не 700 а 400. Только смысла в этом не слишком много. Да, если злоумышленник получил доступ к файловой системе на запись, то ничто не мешает заинклюдить в свой левый скрипт индексный файл (или где там деллается коннект) и пользоваться штатным, уже установленным коннектом. Ага, и шифрование пароля тоже идет лесом.



bulat_ofm1, от какой конкретно угрозы хотите сделать защиту?
...
Рейтинг: 0 / 0
08.06.2013, 20:24
    #38291436
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение к БД MYSQL через хеш
ИМХО, достаточно сделать все для процесса вебсервера доступным только на чтение и не раскладывать всякие похапемойодмин. Если кул-хацерь у вас все же каким-то образом прознает пороль, то хоть базу не сольет. Ну а если у него будет доступ под другим пользователем, то тут уже вы ничего не поделаете. К чему вообще такие извращения? Скорее вы допустите ошибку где-то в другом месте, чем у вас сольют базу методом крадения пароля.
...
Рейтинг: 0 / 0
08.06.2013, 20:27
    #38291439
phpz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение к БД MYSQL через хеш
vkleДа, если злоумышленник получил доступ к файловой системе на запись, то ничто не мешает заинклюдить в свой левый скрипт индексный файл (или где там деллается коннект) и пользоваться штатным, уже установленным коннектом. Ага, и шифрование пароля тоже идет лесом
Если я правильно понял, то (пока) доступа к файловой системе нет. В противном случае сразу заливается шелл.
...
Рейтинг: 0 / 0
08.06.2013, 23:38
    #38291517
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение к БД MYSQL через хеш
bulat_ofm1, когда мы говорим о безопасности пароля, то есть две стороны: безопасное хранение и безопасная передача при подключении.

Безопасное хранение. Про него тебе уже сказали. Можно выложить файл за пределы www каталога и читать его. Это не является абсолютной защитой, но как дополнительная мера не помешает.

Безопасная передача. Я не знаю как именно передаются логин и пароль при использовании mysql_connect и можно ли их перехватить. Возможно там используется протокол при котором пароль по сети никогда не передается. Возможно нет. Совершенно точно что для защиты канала передачи данных можно использовать SSL. См. MySQL 5.1 Reference Manual :: 6.3.6 Using SSL for Secure Connections .

Плохо что ты используешь учетную запись root для работы с БД. Любая уязвимость в коде работы с БД позволит злоумышленнику натворить бед. Следует использовать учетную запись у которой есть права только для выполнения необходимой работы. Это называется принцип минимально необходимых привилегий. Стандартная мера для повышения безопасности сайта и БД независимо от языка программирования и базы данных. Похоже что именно из-за использования root ты задумался о безопасном хранении его пароля.

Обрати внимание что ты mysql_ функции являются устаревшими, больше не развиваются и не поддерживают возможности MySQL 5.1 и выше. Нужно использовать mysqli или PDO_MySQL. См. Choosing an API .
...
Рейтинг: 0 / 0
09.06.2013, 00:22
    #38291534
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение к БД MYSQL через хеш
вообщето база данных обычно на локал хосте, и к ней просто запрещаеться доступ извне.
если даже на другом сервере - доступ к ней, только с определёного айпи.

вообще не надо изобретать велосипед.

сетевая защита - это не пхп програмирование.

уверен с ваших компов легче спереть пароли закинув троян, чем ломать сервер где ваш сайт хоститься.
...
Рейтинг: 0 / 0
09.06.2013, 01:38
    #38291552
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение к БД MYSQL через хеш
alex564657498765453уверен с ваших компов легче спереть пароли закинув троян, чем ломать сервер где ваш сайт хоститься.Смотря на чем сайт. Ежле на джумле 1.5, так и ломать не надо ничего - експлойтов для нее хватает.
...
Рейтинг: 0 / 0
09.06.2013, 12:32
    #38291639
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение к БД MYSQL через хеш
vklealex564657498765453уверен с ваших компов легче спереть пароли закинув троян, чем ломать сервер где ваш сайт хоститься.Смотря на чем сайт. Ежле на джумле 1.5, так и ломать не надо ничего - експлойтов для нее хватает.

:) а пот наши виндоусы - ещо больше нечести написаной :):):)
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Подключение к БД MYSQL через хеш / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]