![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
klyxa |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 13.8.2006 Репутация: нет Всего: нет |
привет. у меня следущая ситуация..
есть сервер А(интерфейс), он получает запросы от клиентов(пользователей). далее,предположим, ему необходимо сделать выборку из базы расположенной на сервере Б.запрос передается скрипту,навешенному на базу,на сервере Б. у меня вопрос-можно ли сделать,чтобы процесс на сервере Б постоянно выполнялся? ну т.е. я пропишу set_time_limit(0);, а не обрубит ли сам сервер процесс? т.е. если грохнеца скрипт на сервере Б..то.хана..) |
|||
|
||||
WolfON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: 1 Всего: 8 |
ага и для каждого нового обращения у вас будет висеть в памяти еще один бесконечный скрипт, пока не кончится память и не упадет апач
|
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
вполне возможно. даже если по соображениям безопасности set_time_limit прокатит, то уж превышение лимита памяти, вполне вероятное при малюсенькой утечке, но особо длительном выполнении, сервер "не простит".
ну. скрипт А обращается к скрипту Б на другом сервере, тем самым инициируя его выполнение. скрипт А по отношению к скрипту Б - такой же клиент, как какой-то браузер в отношении скрипта А. категорически не понимаю, зачем тебе "вечный цикл скрипта Б". скрипт А же не закольцован! Вполне себе запускается только при обращении клиента... гарантировано от сбоев - т.е. чтоб процесс выполнялся даже тогда, когда сервер упал - нельзя. но в любом случае, исполняемый файл-демон-сервер, запускаемый под (Fast)CGI более стабилен, потому как зависит от меньшего количества параметров. Зачем тебе в данном случае скрипт, исполняемый РНР, который запускается из-под Apache или другого НТТР-сервера - я не понимаю. |
|||
|
||||
klyxa |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 13.8.2006 Репутация: нет Всего: нет |
мне надо скрыть существование сервера Б и сделать безопасным передачу данных А-Б. вобще, насчет "скрыть существование" таким способом это какбы сказать пожелание заказчика..
согласен. мне кажется,что наиболее оптимальным будет установка ssl соединения с сервером Б. передача непосредственно запросов и получие ответов, без интерфейса на сервере Б..? http://dev.mysql.com/doc/refman/5.0/en/sec...onnections.html ээ,что скажете?) |
||||
|
|||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Есть два варианта.
1. Нормальная реализация на ПХП, без циклов и т.п. Тут либо шифровать, либо SSL. Шифровать - в данном случае достаточно, хотя надо более детально задачу смотреть. 2. Пишите демон на С++ например или Перле. Тогда проблем не будет. Будет 100%. Зависит от настроек веб-сервера. |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
от клиента, обратившегося к А, существование Б и так незаметно. Если у тебя не редирект на сервер Б, конечно.
в любом случае интерфейса нету. в одном случае, браузер парсит полученный HTML и строит "внешний вид". в другом случае, сервер А получает от сервера Б HTML(xml?) и ничего не "строит", а строит логику на основании полученных данных. В любом случае, скрипту на сервере Б нет нужды входить в "вечный цикл". От тебя, кстати, аргументации вечному зацикливанию так и не увидел. обезопасить от чего? впрочем, если про SSL сам заговорил, то, пожалуй, в подробности вдаваться и не буду. Хотя общение между "своими" двумя серверами можно и чем попроще шифровать... |
|||
|
||||
sTa1kEr |
|
|||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 11 Всего: 146 |
Помимо таймаута PHP, есть так же таймаут apache. Однако скрипту запущенному отдельным интерпретатором не что не помешает работать сколько угодно долго. Я правильно понял, что вы хотите скрыть сам факт наличия apache на сервере Б? Тогда проще всего просто повесить apache на другой порт, отличный от 80. |
|||
|
||||
klyxa |
|
||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 13.8.2006 Репутация: нет Всего: нет |
да я просто отказался от этой идеи..и решил промолчать..) сорь еси чо)
ну я уже могу перехватить трафик,поэтому разумно будет шифровать)
а подскажи как именно, ssl не подарок,конечно.
да не..идея плохая. по сути..если ломается сервак А, то узнаются настройки доступа к Б и все ssl и пр. идут лесом.
хмм..ну я об этом не думал,но идейка то хороша.. |
||||||||||
|
|||||||||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
||||
|
||||
klyxa |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 13.8.2006 Репутация: нет Всего: нет |
а вот 2 ключа..известных серверу(ам)..т.е...шифрование на php. я предположу,что и дешифровка на php т.е. уже образуется интерфейс вокруг базы..) или я не знаю всех тонкостей?если так, то дайте плиз,что почитать.
|
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Принцип такой. То, что вы хочеше отправить на удаленный сервер - шифруете, с ключом. На удаленном сервере дешифровываете. В вашем случае - можете передавать SQL запрос таким образом, в качестве строки, а в начало вставить подстроку вида "AAA#", чтобы можно было удостовериться, что расшифровали верно. Вырезаем эту часть, а оставшуюся (SQL запрос) отправляем на выполнение. http://ru.php.net/manual/ru/book.mcrypt.php - шифрование/дешифрование http://ru.php.net/manual/ru/book.mhash.php - тоже гляньте http://ru.php.net/manual/ru/book.openssl.php - OpenSSL на крайний случай |
|||
|
||||
klyxa |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 13.8.2006 Репутация: нет Всего: нет |
спасибо
ууу. юбилейный пост..) Это сообщение отредактировал(а) klyxa - 29.7.2008, 18:01 |
|||
|
||||
Resha |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.3.2008 Репутация: нет Всего: нет |
Или сделать ответ 404 для любых чуваков, у которых IP не является IP сервера A ![]() А лучше все вместе. При этом еще и авторизацию повесить. Потом шифрование (желательно по известному обоим ключу и еще и времени, когда был сделан запрос сервером А), из параметров проверки безопасности передавать только ключ и время запроса. Сервер Б смотрит, чтобы время запроса отличалось не более чем, предположим, на 1 минуту, потом сверяет какие-нибудь sha1 по ключу и времени запроса. Если время больше 1 минуты - выдает 404. Смысл передачи времени, думаю, понятен - если кто-то затырит шифрованный ключ, то через минуту он станет уже невалидным ![]() От серверов требуется синхронное время (с разницей не более чем в 10-15 секунд) и общий ключ для шифрования. Вообще, тоже не понимаю, зачем нужен именно демон. По-моему, мы говорим о RESTе или веб-сервисах ![]() |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |