![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| bulat01 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 26.10.2010 Репутация: нет Всего: 0 |
Здравствуйте все,
не знаю как правильно реализовать логику подключения к БД mysql. db_fns.php
Пароль хранить в текстовом виде - большая дыра в безопасности. Посоветуйте или скиньте линки на пошаговую инструкцию - как подключиться к БД используя хешированный пароль. Некоторые советуют хранить файл паролей нужно хранить за пределами document_root. Но как ее там хранить в хешированном виде? Как тогда на нее ссылаться? Как такая логика вообще реализуется - подключение к БД через root для возврата данных, никакой логики аутентификации для конекта кроме указанного скрипта не используется. С уважением! |
|||
|
||||
| ksnk |
|
||||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Пароли, надеюсь, хранятся в php, а не в текстовых файлах? Если хранить пароли в php файлах, то особой секретности от выбора места хранения не появляется. Ну вообразим себе, что пароль к базе храниться в совершенно незашифорванном виде в файле
Каким образом хакер может получить информацию из этого файла? Набрав адрес http://mysite/database_password.php он получит, как и ожидалось, не пароли , а совсем даже пустую страничку. Если у хакера есть доступ к файлам сайта (хозяин слил в интернет-кафе ftp пароль), то никакого разумного телодвижения, кроме смены всех паролей, совершить уже не получится, все пароли как бы они не были зашифрованы - уйдут.Хакеру достаточно найти место в программе, где пароли уже расшифрованы и отослать их себе/сбросить в лог, который потом утащить. Хранить информацию ВНЕ web каталога нужно не для секретности, а для удобства работы. Ну, это если на сайте нет откровенных дыр в безопасности, которые позволяют читать файлы. Но, и в этом случае и файл "за границей" web каталога не спасёт.
Подключение в DB через root - это УЖЕ большая дыра в безопасности Если дыра в сайте, через которую можно выполнить произвольный запрос, обнаружится, то ограниченные права не позволят зломуумышленнику прочитать/записать файлы на сайте (mysql это умеет), удалить таблицы из вредности или внести информацию в базу. Это сообщение отредактировал(а) ksnk - 8.6.2013, 14:59 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||||
|
|||||||
| mexanika |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 9.1.2011 Репутация: нет Всего: нет |
если db_conn.php на уровень выше папки public_html, а php-файл с подключением к бд в папке public_html.
db_conn.php:
можно пропускать через base64_encode/base64_decode только шифруйте с солью, но это через тернии в жопу Это сообщение отредактировал(а) mexanika - 8.6.2013, 15:23 |
||||
|
|||||
| bulat01 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 26.10.2010 Репутация: нет Всего: 0 |
Спасибо большое за ответ ,
но у меня никак не получается сделать, т.к я новичок в php
Вы не могли бы отписать что куда смотреть (если есть пост, буду благодарен)? С уважением! |
|||
|
||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 16 Всего: 55 |
Это все "программистская алхимия" новичков.
Чтобы пароль не выдался в описании ошибки, то достаточно отключить вывод ошибок. Это всего-то одна настройка в php.ini. Вы не подключитесь к базе, не зная пароля. Значит он в любом случае где-то будет записан. А в функцию он передается в исходном виде. Так что все равно в скрипте будет метод расшифровки хеша. И если кто-то откроет файл скрипта, то никакой хэш и другие ухищрения Вам не помогут. Но дыра с свободным доступом к файлам - это уже другая проблема. Лучше перейдите на более совершенную библиотеку mysqli вместо mysql и используйте её предподготовленные запросы. Если вы оставите дыру для sql-иньекции, то пароль взломщику уже не будет нужен, он поломает базу вашими же запросами. А Вы при этом еще будете напрасно думать, что виноват открытый пароль в скрипте... Это сообщение отредактировал(а) Arantir - 8.6.2013, 17:51 -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |