PDA

Просмотр полной версии : Как защитить пароль от базы данных форума???


Nightmarе
24.04.2008, 16:19
В общем... такая ситуация.
У меня на сайте стоит форум, ну а там есть файлик config.php в котором пароль от базы в открытом виде.
Форум мой, и приватный, но доступ по ФТП есть не у одного меня, естественно зная пароль от базы можно её скачать и прочитать всё...

Мне предложили интересный способ смысл которого я так и не догнал.
Можно сделать так, положить текстовый файл с паролем от базы данных на какой-нибудь хост, и через .htaccess разрешить к нему доступ определённому файлу. Чтобы считать информацию из текстового файла мог только http://site.com/forum/config.php
Но ринувшись настраивать свой .htaccess столкнулся с траблой, что можно разрешать доступ тока IP адресам, но никак не сайтам напрямую.
Соответственн тут 2 проблеммы.
1) У сайта нету собственного IP адреса, он имеет IP хостера и не более.
2) Даже если-бы и был бы собственный IP, то я так понимаю доступ будет открыт для всего сайта, а не для отдельного файла.


Ну и как последнее это шифровка файла зендом и т.д... но это ясен пень ненадёжный способ...

Что в этой ситуации можно сделать? Как защитить пароль?

biophreak
24.04.2008, 16:36
А на фтп доступ под одним юзером у всех?
Если под разными, то права правильно выставить...

Еще как вариант обфускация скрипта+зенд, в общем поиграться с различными способами "шифрования" сорца(комбинировать их, возможно)

Naydav
24.04.2008, 16:38
А права доступа на файл задать нельзя?
или может поместить файл выше корневой директории?

Nightmarе
24.04.2008, 16:44
А на фтп доступ под одним юзером у всех?
Если под разными, то права правильно выставить...

Угу под разными, но он льёт шелл и прыгает ко мне в директорию.
какие-бы не были права, прочитать файл то он моежт при любых правах.

Или может как-то к базе привязку можно сделать чтобы войти в базу можно было с определённого скрипта...

biophreak
24.04.2008, 16:47
Насчет шелла - да, но ты в общем на директорию поставь права нужные...чтобы другие юзеры не могли даже листинг диры глянуть )))
А вот насчет привязки - хз, я лично не сталкивался с этим...

Nightmarе
24.04.2008, 16:52
Насчет шелла - да, но ты в общем на директорию поставь права нужные...чтобы другие юзеры не могли даже листинг диры глянуть )))

Я не знаю как именно это сделать объясни поподробнее где и как

iddqd
24.04.2008, 16:57
chmod go-rwx config.php
Право на чтение и запись остается только у владельца файла(если ТЫ владелец)

biophreak
24.04.2008, 16:58
Хм, и глянь в общем мануал по chmod, полезная в хозяйстве вещь )

Nightmarе
24.04.2008, 17:07
Я это всё прекрасно знаю, но в итоге залив шелл можно прочитать любой файл с любыми правами за исключением прав 000, но тогда и форум пахать не будет.
Выходит кроме крипта способов нету :(

iddqd
24.04.2008, 17:09
Насколько я знаю, шелл работает под правами apache либо nobody...
Они явно не являются владельцами файла

MegaDeth
24.04.2008, 17:14
подредактировать форум так чтобы он искал файл с конфигом не у ся в папке а в защищеном месте

biophreak
24.04.2008, 17:14
Ну правильно, а ведь на чтение конфига еще права апачу надо дать, так что с шелла прочитать можно будет, а вот назапись в диру поставь права только твоему юзеру, шелл будет сложнее уже залить от другого юзера )

Naydav
24.04.2008, 17:22
Если положить файл удаленно, то все равно будешь к нему обращаться через файл своего форума, что мешает подконектиться по фтп и посмотреть спосою выбирания пароля(ты же как-то будешь получать этот пароль в скрипте)...
Даже если доступ от одного конкретного файла, что мешает тем же шеллом дописать тебе в конец этого файла любой код (например тот, что записывает удаленно логин и пароль от твоей бд)

Если у юзера есть права на запись, он просто повторит действия твоего скрипта, куда бы не прятать файл паролей!

Остаеться права доступа или шифрования, или ПЕРЕЙТИ НА ДРУГОЙ ХОСТИНГ

Nightmarе
24.04.2008, 17:27
Если положить файл удаленно, то все равно будешь к нему обращаться через файл своего форума, что мешает подконектиться по фтп и посмотреть спосою выбирания пароля(ты же как-то будешь получать этот пароль в скрипте)...
Даже если доступ от одного конкретного файла, что мешает тем же шеллом дописать тебе в конец этого файла любой код (например тот, что записывает удаленно логин и пароль от твоей бд)
Будут мешать правильные права, на папку 555 а на файлы 444. таким образом редактированию не подлежит.

лучший способ это естественно чтобы в конфиге сделать инклуд на текстовый файл на другом хосте, но как сделать чтобы другой хост отследил точный путь файла а не только IP

biophreak
24.04.2008, 17:28
2Naydav: Немного непонятно что ты хотел сказать вышенаписанным =\
2Nightmare: По Referer, только его и подделать можно...

Naydav
24.04.2008, 17:32
А что помешает залить шелл и дописать в твой конфиг, где инклуд -
считку логина и пароля и запись их в файл на удалленном компе

но как сделать чтобы другой хост отследил точный путь файла
Ну если в одном файле инклуд другого - это и есть один тот же файл получаеться

Naydav
24.04.2008, 17:35
2Naydav: Немного непонятно что ты хотел сказать вышенаписанным =\
Твой конфиг подключает файл с паролями, определенным набором функций - значит так же любой может подключить этот файл и повторить набор этих функций(которые он может посмотреть скачав твой файл)
ДАЖЕ у тебя в твоем конфиге он может получить пароли( он просто допишет вниз код который сохранит ему пароли)

Редирект посетителей в зависимости от рефера (ссылающейся страницы):

RewriteCond %{HTTP_REFERER} http://www.sexnarod.ru
RewriteRule ^/sex-video.html$ /no.html [L]
*** В данном случае все посетители с форума sexnarod.ru вместо файла sex-video.html получат файлик no.html

Можно показывать разные страницы сайта, в зависимости от IP адреса посетителя (редирект по IP)
SetEnvIf REMOTE_ADDR 192.168.8.1 REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /no.html

Можно конечно комбинировать рефер и юзер агент(вернее его отсутствие), но как поведет себя .htaccess, если подключиться по телнету и передеть все, что угодно и в рефер и юзер-агенте

Так почему не перейти на другой хостинг?

biophreak
24.04.2008, 17:41
Так почему не перейти на другой хостинг?

Ы, как вариант :)

Но только не понимаю, что мешает поставить права на запись в веб диру только одному юзеру - как одно из средств борьбы с заливкой шелла...а вот на конфиг поставить права на чтению тока твоему юзеру и апачу\nobody...соответсвенно другие юзеры, которые имеют доступ к фтп - не смогут прочитать config.php( и соответсвенно в веб диру писать не смогут), а апач сможет прочитать конфиг...

ЗЫЖ Дабы сбить с толку переименуй его в какойнить showpost.php ) Можешь еще создать фейковый config.php с левыми данными, но это все баловство, так - чтобы сбить с толку потенциального "хэкира"

Nightmarе
25.04.2008, 00:29
Значит меня сейчас поситила ещё одна интересная идея.

Смысл вот в чём, смотрите вот конфигурационный файл от форума:
http://site.com/forum/config.php, он посылает запрос на второй файл скрипту, где хранятся пароли сюда:
http://secret.com/script.php, а этот скрипт в ответ отсылает пароли (незнаю может параметром, может ещё как) ТОЛЬКО на определённый URL сюда: http://site.com/forum/config.php.

Тогда будет непробиваемая защита пароля, скрипт по адресу:
http://site.com/forum/config.php нельзя удалить или заменить или модифицировать ибо на нём права 444, а на папках права 555, редактированию не подлежат.
А скрипт http://secret.com/script.php отсылает инфу на URL который подменить никак нельзя.

Ну и собственно вопрос, может кто нибудь поможет с реализацией???
Нужен php код обоих скриптов как это реализовать, кто сможет помочь в этом деле, помогите плииз!!!

Nightmarе
26.04.2008, 22:21
тему можно закрывать во избежание флуда.
я уже описал способы в теме вопосы по php, ответов нет.
не надо писать тут идеи про редактирование и т.д...
нет так нет

George767
27.04.2008, 07:57
Zend Guard зашифровать вообще все php файлы, зачем нужен весь этот изврат?

Isis
27.04.2008, 08:17
Ioncube

nc.STRIEM
27.04.2008, 12:13
какие-бы не были права, прочитать файл то он моежт при любых правах.

Ты так думаеш?

На чтение то его закрыть мона, ток вот до пизды все зенды и кодировки, т.к. всегда мона проинклюдить файл и вывести значение переменных



Тогда будет непробиваемая защита пароля, скрипт по адресу:
http://site.com/forum/config.php нельзя удалить или заменить или модифицировать ибо на нём права 444, а на папках права 555, редактированию не подлежат.
А скрипт http://secret.com/script.php отсылает инфу на URL который подменить никак нельзя.

Неа, ты не сможеш скриптом определить с какого файла был запрос, максимум что ты сможеш определить это IP, но это легко обходиться, сам понимаеш....

Pashkela
12.06.2008, 03:31
Можно так криптануть (или изучить то, что прилагается там)

http://www.phpbbhacks.com/download/4572