powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Подключение к БД MYSQL через хеш
14 сообщений из 14, страница 1 из 1
Подключение к БД MYSQL через хеш
    #38291285
bulat_ofm1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте все,
не знаю как правильно реализовать логику подключения к БД 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
Подключение к БД MYSQL через хеш
    #38291309
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А делать авторизацию на хешу это не дыра?
...
Рейтинг: 0 / 0
Подключение к БД MYSQL через хеш
    #38291310
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По крайней мере со стороны MySQL.
Да и какая разница бы была тогда, завладеют вашим паролем или хешем.
...
Рейтинг: 0 / 0
Подключение к БД MYSQL через хеш
    #38291329
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bulat_ofm1,

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

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

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
Подключение к БД MYSQL через хеш
    #38291386
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вас умоляю, если злоумышленник смог прочитать файл паролей, то и остальные файлы он прочитает.
...
Рейтинг: 0 / 0
Подключение к БД MYSQL через хеш
    #38291406
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettЯ вас умоляю, если злоумышленник смог прочитать файл паролей, то и остальные файлы он прочитает.

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

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



bulat_ofm1, от какой конкретно угрозы хотите сделать защиту?
...
Рейтинг: 0 / 0
Подключение к БД MYSQL через хеш
    #38291436
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО, достаточно сделать все для процесса вебсервера доступным только на чтение и не раскладывать всякие похапемойодмин. Если кул-хацерь у вас все же каким-то образом прознает пороль, то хоть базу не сольет. Ну а если у него будет доступ под другим пользователем, то тут уже вы ничего не поделаете. К чему вообще такие извращения? Скорее вы допустите ошибку где-то в другом месте, чем у вас сольют базу методом крадения пароля.
...
Рейтинг: 0 / 0
Подключение к БД MYSQL через хеш
    #38291439
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkleДа, если злоумышленник получил доступ к файловой системе на запись, то ничто не мешает заинклюдить в свой левый скрипт индексный файл (или где там деллается коннект) и пользоваться штатным, уже установленным коннектом. Ага, и шифрование пароля тоже идет лесом
Если я правильно понял, то (пока) доступа к файловой системе нет. В противном случае сразу заливается шелл.
...
Рейтинг: 0 / 0
Подключение к БД MYSQL через хеш
    #38291517
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Подключение к БД MYSQL через хеш
    #38291534
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообщето база данных обычно на локал хосте, и к ней просто запрещаеться доступ извне.
если даже на другом сервере - доступ к ней, только с определёного айпи.

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

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

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

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


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