PDA

Просмотр полной версии : Нужно експертное мнение о защите сайта.


Dukobpa3
24.11.2010, 00:04
Здравствуйте. Это первый мой сайт на флеше, и вот вопрос возник. Полазил тут по форуму, много интересного узнал, частично воплотил в жизнь, и вот что получилось:

Есть сайт.
И морда и админка флешовые.
Оба модуля работают через amfphp.

Оба модуля находятся в разных папках на сервере:

http://site.com/index.html
http://site.com/admin/index.html
//************************
Это, собственно, если в общем.

Теперь что я сделал в плане защиты:

1. В базе MySQL две учетки, одна на чтение вторая на запись.
2. amfphp содержит две пачки скриптов. Одна пачка на запись в базу, и к ней имеет доступ админка, вторая на чтение, соответственно для морды. Скрипты работают с этими двумя учетками мускуля.
3. Доступ к http://site.com/admin/ - закрыл посредством .htaccess + .htpasswd

//************************
Ну а теперь собственно вопрос: Этого достаточно чтоб спать спокойно?
Думаю ничего страшного если кто-то влезет в базу отснифив запросы из клиентской части(хоть даже и декомпилит), ибо доступа на запись у того что он увидит - нету.

Основной упор на то чтобы несанкционировано ничего в базу не попало. А человек у которого есть доступ к админке как бы и так доступ имеет от него особо прятать нечего.

leofit
24.11.2010, 11:02
1. В базе MySQL две учетки, одна на чтение.
2. amfphp содержит две пачки скриптов. Одна пачка на запись в базу, и к ней имеет доступ админка, вторая на чтение, соответственно для морды. Скрипты работают с этими двумя учетками мускуля.


1. Только на чтение? INSERT, UPDATE, DELETE, DROP .... и прочее убрано?
2. Скрипты для админки (amfphp) тоже закрыты .htpasswd?

Dukobpa3
24.11.2010, 21:02
1. Только на чтение? INSERT, UPDATE, DELETE, DROP .... и прочее убрано?
Ну вообще-то там только SELECT добавлен:) Он больше ничего не может:)

2. Скрипты для админки (amfphp) тоже закрыты .htpasswd?
Это нет, а как будет выглядеть работа пользователя если добавлю? его при каждом запросе будет переспрашивать пароль?

leofit
25.11.2010, 10:40
Нет, sessid же одинаковый для браузера и флешки...
А вообще можно страницы дергать по ссылке
http://user:passwd@site.ru/script.php
он тогда сам авторизуется
Закройте скрипты, никому же не сложно зайти к вам на сайт, и выполнить что то вроде site.ru/scripts/drop_db.php, то, что никто не знает иеарархии ваших урлов очень шаткая и недолгая видимость защиты

Dukobpa3
25.11.2010, 11:15
Спасибо за комментарии.

Кстати насчет вот этого:
http://user:passwd@site.ru/script.php
И каким образом мне эти ссылки передавать так чтоб их отловить нельзя было?

Поидее выглядит как ссылка и снифится при желании целиком(вместо с логином и паролем). (я далеко не проф, могу конечно и бред нести, поправьте если не прав:) )
К тому же мне где-то эти логин-пасс хранить тоже надо будет.

Или такая схема:
1. в базе логин и пароль (мд5 пароля).
2. в запароленной папке на сервере хмл с паролем (пароль от папки предлагается запомнить и нигде не хранить:) )
3. пользователь при коннекте вводит пароль от хмла, и получает доступ к папке с скриптами(скрипты хранятся в другой папке)
4. скрипты уже дергают из базы:)

З.Ы. Перенес сайт на его постоянный хостинг. Не все хостинги такие лояльные как мой оказались. Тонкую настройку пользователей БД не дают сволочи :) Так что мой крутой с одним селектом в арсенале канул в лету, остался теперь один стандартный админ, и один стандартный предоставленный хостером ридонли)))

leofit
25.11.2010, 11:29
не, система такая
есть папка админ
в этой папке лежит флешка и скрипты для работы с БД, все для админа
эта папка защищена .htaccess
всё.

Если человек получил доступ к админке (через .htaccess), то спокойно работает
Если нет то ни к каким скриптам доступа иметь он не будет

А по поводу того что бы отловить.... Вы понимаете, да, что Ваш трафик, идущий с Вашего компа, через Вашего провайдера, через провайдера Вашего провайдера, через........ и поступающий на сервер легко снифается?

Что бы получить доступ к админке можно

а. Просинифать трафик админа
б. украсть сессию админа
в. получить физический доступ к серверу (через другой сайт например, на том же хостинге)
г. кейлоггеры, и тп на компе админа

Поэтому шифруйте трафик, ставьте vpn или tor для админа, если уж маниакально подходить, антивирусы наконец =)

А для обычного юзера никаких извращений не надо, пусть работает в штатном режиме, как у Вас сейчас сделано, если он свой трафик и будет анализировать он сможет воспользоваться интерфейсами для чтения, и только.... Все ценное спрятано в защищенной директории admin, и доступа туда у него нет

Главное, что бы php скрипты дырявые не были у Вас =)

Добавлено через 1 минуту
Не все хостинги такие лояльные как мой оказались. Тонкую настройку пользователей БД не дают сволочи :)
В смысле не дают? Вы же можете выполнять sql-запросы? или Вам права на GRANT порезали? )

Dukobpa3
25.11.2010, 11:41
не, система такая
есть папка админ
в этой папке лежит флешка и скрипты для работы с БД, все для админа
эта папка защищена .htaccess

Ну сейчас как бы так и есть, только не совсем.

Была одна админка, скриптовая, куча скриптовых пхп-файликов.
Вот эта скриптовая админка лежит в папке "админ" запароленная .htaccess Там и скрипты, и сама флешка исполняющая их.

Сам сайт через амфпхп общается с базой. Плюс вторая версия админки вот сейчас в процессе, ее я пишу под амф. На текущий момент организована так же как и первая (даже в той же папке лежит), но амф имеет свои ограничения на тему - где хранить скрипты, потому скрипты лежат там где просит амф.

Паролить папку со скриптами амф я изначально побоялся ибо не знал как программно до них достучаться потом. Сейчас вот с вами пообщался, всё стало на места, а посему видимо и на папку скриптов амф пароль повешу.

В смысле не дают? Вы же можете выполнять sql-запросы? или Вам права на GRANT порезали? ) Это видимо я протупил)) надо попробовать) Говорю же, первый сайт)) до этого только с всякими вордпресами игрался. Самому в скуль залезть - это вообще было как чудо.

Добавлено через 2 минуты
Насчет дырявости скриптов это да))) надо поглядеть еще:) Хотя я особо не парился, все юзерские выполняются от ридонли аккаунта.

terbooter
10.12.2010, 22:08
проверьте на возможность sql-инъекций
stripslahes или PDO::prepare, PDO::quote

artfabrique
10.12.2010, 23:55
кстати, на заметку - у флэша (ActiveX) и браузера сессии разные - это фича или баг, не знаю. Но при аплоде файлов, имейте ввиду, нужно к адресу URLRequest присобачивать что-то вроде
?PHPSESSID=sdfsdfasdfasdfasdfasdfasdf
Отловить при каких именно обстоятельствах флэшка создает новую сессию не получилось. Но она точно новая при использовании FileReference