[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: сайт на регоны, архитектура не ясна
olgatcpip
Дорогие, ЗНАТОКИ И СПЕЦИАЛИСТЫ.

Нужна грамотная помощь специалистов высокого класса.

Мне предлагают работу. Проект. Планируется нагрузка большая при большая. Прям такая большая, что и представить сложно. Замах на популярность таких проектов как http://www.avito.ru/

Смотрите. тут есть несколько регионов.

Так вот. Заказчик убежден, что на городском хостере сайт работает быстрее.
Например, по Красноярску сайт будет быстрее грузиться с красноярского хостера, чем с московского.

Так вот хочется на поддоменах размещать разные города, да так, чтобы админка общая (общая админка не проблема для меня).

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

Информация некоторая будет общей на все города/регионы. Некоторая своя, например объявления.

Так вот. Сразу заикнусь, что будут пользователи регистрироаться, оставлять комменты, объявления. Эти аккаунты кликая по регионам видят себя как авторизованные (если прошли авторизацию в любом регионе).

ТАК ВОТ. Как мне создать взаимодействи. Сколько Баз Данных, скорее скрипты дублированные будут...

Смотрю на тот же яндекс, пингую .com, .ru, .ua IP разные....
НО я везде авторизована. Как они с этим справились..


Помогите создать архитектуру.



Спустя 2 часа, 6 минут, 41 секунда (21.08.2011 - 11:55) Nikitian написал(а):
Про авторизацию на разных доменах второго уровня. Тут используется единый сервер авторизации. У яндекса это passport.yandex.ru. При авторизации на каком-либо проекте пользователь кидается на этот passport, который вас либо авторизует, либо нет. Если авторизует, то возвращает обратно с меткой, подписанной с помощью секретного ключа, и сквозным идентификатором пользователя. Получив и проверив метку, сервер отправляет запрос на passport (ну или какой другой) для получения данных этого пользователя по идентификатору. Обычно данные пользователя сохраняются в локальную пользовательскую базу, чтобы каждый раз не пинать passport (проблему актуализации данных оставлю как домашнюю работу вам). При заходе на новый сервер неавторизованными, вас редиректит на passport. Если вы уже где-то авторизовались, то на passport'е стартанула ваша сессия и вас тут же возвращает обратно уже с идентификатором и подписью. Если же не стартовала, то соответственно возвращает с отметкой, что не авторизован и на локальном сервере вам показывается форма авторизации, ведущая на passport.

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

Для объявлений вам потребуются локальные базы. раз нагрузка будет такой-растакой огромной. Соответственно и админку надо будет делать локальную для модерации объявлений и глобальную для общих данных - это здравый смысл, т.к. модераторы не смогут качественно модерировать объявления из неизвестного региона.

Данные от глобальной админки кидайте по ftp на хосты локальных серверов - самый простой с точки зрения реализации способ.

Вроде по озвученным вопросам описал всё, что необходимо для реализации.

Спустя 3 часа, 22 минуты, 17 секунд (21.08.2011 - 15:17) inpost написал(а):
olgatcpip
Есть в Днепропетровске Украинский хостер... единственная беда, серверы располагаются в другой стране вообще.
С другой стороны мой провайдер даёт идеальный пинг до половины хостеров Германии, зато есть парочку провайдеров до которых связь хуже, чем если бы я коннектился в Америку. (Это проверять фактическое расположение серверов надо!!!), ну а по сути - да, если городской - то скорость будет выше.
Единая авторизация: API (как вконтакте), сессия хранится в БД, а не на сервере. Как сказал Никитиан, запрос кидается на какой-то центр, где хранится БД юзеров, потом возвращается на регион.
Единую БД пользователей можно создать через отдельную БД, где будут храниться данные о пользователях, остальные данные работать будешь с внутренними БД для каждого региона.

Спустя 22 минуты, 38 секунд (21.08.2011 - 15:39) vasa_c написал(а):
olgatcpip, опишите заказчику про разбиение базы, сколько проблем это принесёт и что в следствии их, стоить это всё будет раз в пять дороже. Скорее всего эротические фантазии вроде "на городском хостере сайт работает быстрее" от этого уйдут.

Спустя 7 часов, 12 минут, 15 секунд (21.08.2011 - 22:52) sebastjan написал(а):
olgatcpip
интересное задание, отпиши потом как структуру создавали.

Спустя 5 часов, 29 минут, 58 секунд (22.08.2011 - 04:22) olgatcpip написал(а):
Nikitian, спасибо, очень подробно описал. Остальные вопросы, думаю будут в процессе.....

Я так представляю, passport как бы вместо сессии. Осталось выяснить про секретный ключ и как сделать защищенное его использование. Прокомментируй как формировать ключ и хранить локально стоит ли в БД или в Сессии локальной или в куках?

Сложность основная - это создать взаимодействие. Примеров кода наверно и нет smile.gif
А главное актуализация скриптов, сменил в одном регионе, сразу продублировать на все... И все таки ветки будут все равно различаться.. Но это пустяки, если пойдет хорошо, начнем нанимать команду.



Спустя 7 часов, 33 минуты, 18 секунд (22.08.2011 - 11:55) Nikitian написал(а):
Сессия стартует как на passport, так и на локальном сервисе. На локальном, чтобы на каждую страницу не дёргать passport, на passport, чтобы он знал кто авторизован и не запрашивать всё время авторизационные данные.

Секретный ключ и подпись им.
На двух серверах имеется одна и та же строка. Задача: использовать эту строку, как секретный ключ для подписи.

//Server1: Signing
$secretkey = '!rf24%Y#$Yh45j45#QW#TY#$5yw54g';
$somedata = 'user_id=1';
$sign = sha1(sha1($somedata).sha1(secretkey));//Алгоритм может быть любой. Крайне желательно необратимый, т.е. хэширование


//Server2: Check signed data

$secretkey = '!rf24%Y#$Yh45j45#QW#TY#$5yw54g';
$data = 'user_id=1';
$sign = 'afafafafafafafafafafafafafafaafafafafafafafa';
if(sha1(sha1($data).sha1($secretkey))==$sign){
// Подпись сходится - данные в $data не были подменены
}

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

Спустя 13 минут, 4 секунды (22.08.2011 - 12:08) twin написал(а):
Как работать с ключем, можно подсмотреть на любом биллинге. Там берется несколько передаваеимых параметров, конкатенируются по секретному алгоритму плюс ключ и сравниваются хэши.

А вообще vasa_c здравую мысль написал. Первым делом нужно опираться на реальные данные о посещаемости. Я вот сильно сомневаюсь, что это все будет оправдано.
Цитата
Планируется нагрузка большая при большая. Прям такая большая, что и представить сложно. Замах на популярность таких проектов как http://www.avito.ru/
Нужно не представлять, а просчитать. На том же avito.ru поддоменов чет не наблюдается...

О масштабируемости думать конечно нужно, но стоит ли с неё начинать? А то получится, что колонной самосвалов ты будешь перевозить рояль.

Спустя 3 часа, 3 минуты, 55 секунд (22.08.2011 - 15:12) olgatcpip написал(а):
То, что на разных городах, будет практически сразу... Да что там, мне так и сказали, мы запустим здесь и мой сын там.

Спустя 27 дней, 21 час, 6 минут, 49 секунд (20.09.2011 - 12:19) olgatcpip написал(а):
И снова к этому вопросу.

Значит нужно сделать секретный ключ. Не проблема.

НО я, анпример, авторизовалась, на a.site.ru В паспорт записала, локально на a.site.ru без проблем определяю, что я авторизована.

Потом иду на b.site.ru И как здесь мне понять, что я авторизован?
Ну, если так b.site.ru?SECRETKEY , то ясно как понять, но тогда и ключ все равно не секретный.

Хочется, чтобы авторизованный на поддомене A, был авторизован автоматом на B
Даже если на B, человек зайдет путем копирования урла в строку браузера.

Вот в этом у меня основная головоломка.

Спустя 17 минут, 39 секунд (20.09.2011 - 12:36) caballero написал(а):
Цитата
Планируется нагрузка большая при большая. Прям такая большая, что и представить сложно. Замах на популярность таких проектов как http://www.avito.ru/

Как говорят в Украине "Дай боже нашому телятi вовка з'iсти"
Если будет такая нагрузка то будут и деньги на мощный веделеный сервак. решайте проблемы по мере поступления. Планировать можно что угодно, нужно еще чтобы посетители заинтересовались этими планами.

Цитата
Так вот. Заказчик убежден, что на городском хостере сайт работает быстрее.


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

Делай все на одном мощном серваке со всеми поддоменами. Упаришься синхронизировать все данные разбросаные по базам джанных не говворя уже про стоимость (в частности стоимость администрирования всего этого).

Цитата
Хочется, чтобы авторизованный на поддомене A, был авторизован автоматом на B
Даже если на B, человек зайдет путем копирования урла в строку браузера.

Вот в этом у меня основная головоломка.


Еще ничего не сделал а уже головоломки. О чем и речь.

Спустя 7 минут, 45 секунд (20.09.2011 - 12:44) olgatcpip написал(а):
Ясно. Тогда так. Есть phpbb. Установлен. А до него был сайт. С авторзацией. С регистрацией. Вспомнить парольк и все такое.
Как сделать, чтобы авторизовавшись на сайте, мы были автоматом авторизованы на форуме?
Задача тика в тику. Кстати, сервер один в этом случае. Я уже молчу о смене пароля и единой регистрации (это можно в лоб редиректом.).

Но все же. Это решается session_save_path ? Объясните дураку. Решают же такие задачи. авось не сложно.

Спустя 12 минут, 54 секунды (20.09.2011 - 12:57) caballero написал(а):
Цитата
Как сделать, чтобы авторизовавшись на сайте, мы были автоматом авторизованы на форуме?



при регистрации запихзиваешь юзера в базу phpbb

       mysql_query("insert into phpbb_users (username,user_password ,user_email,user_valid) ...   


при авторихации надо найти где хранится в форуме текущий юзер
если к примеру переменная в сессии - запихиваешь в нее по аналогии

Спустя 48 минут, 37 секунд (20.09.2011 - 13:46) olgatcpip написал(а):
Мой последний вопрос вообще не о том был.

Я вот как решила делать за неимением лучшего.

При авторизации на site.ru, помимо проверок, получаю с паспорта уникальный ид сессии (его я ещё в базу запиши на паспорте) и записываю этот ид в куку на домен.
setcookie('passport_key', $id_session, time()+60*60, '/', 'webolga.ru');

Таким образом когда мы перейдем на форум, эта кука будет "подрисовываться" и по ней я буду искать в БД запись. Если есть, авторизую локально, если нет, значит гость.

Здесь где-то писали. что куки - не лучший вариант. Мол отключены могут быть. Но лучше вариант мне не приходит на ум.

Если есть механизм лучше, расскажите.

Спустя 17 минут, 14 секунд (20.09.2011 - 14:03) caballero написал(а):
никто куки не отключает обычно
а что мешает в сессии сохранить
или это разные сайты?

передайте значение в урле которым на форум переходите

Спустя 4 минуты, 39 секунд (20.09.2011 - 14:08) olgatcpip написал(а):
Сайты разные. форум на поддомене. А в будущем и сервера разные sad.gif мне кажется бесполезно разубеждать заказчика в том, что разводить по серверам не нужно. Да и самой интересно!

Спустя 6 минут, 32 секунды (20.09.2011 - 14:14) caballero написал(а):
Цитата
  Сайты разные. форум на поддомене. А в будущем и сервера разные  мне кажется бесполезно разубеждать заказчика в том, что разводить по серверам не нужно. Да и самой интересно!


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


Спустя 46 минут, 33 секунды (20.09.2011 - 15:01) killer8080 написал(а):
olgatcpip
как вариант, допустим есть домены site.ru, main.site.ru и forum.site.ru
можно сделать так, после авторизации устанавливаем общие куки к домену второго уровня

$secret = 'bolshayaabracadabra';
$user_hash = md5($login. md5($password).$_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR'].
(
isset($_SERVER['HTTP_X_REAL IP']) ? $_SERVER['HTTP_X_REAL IP'] : '').
(
isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : '').
(
isset($_SERVER['HTTP_ACCEPT']) ? $_SERVER['HTTP_ACCEPT'] : '').
md5($secret));

setcookie('user_id', $user_id, $expire, '.site.ru');
setcookie('user_hash', $user_hash, $expire, '.site.ru');


дорабатываем механизм авторизации, если пользователь не был авторизован на текущем субдомене, то проверяем наличие кук user_id и user_hash, и при их наличии на основе $_COOKIE['user_id'] и данных о пользователи из бд, аналогичным образом генерим $user_hash и сравниваем с $_COOKIE['user_hash']
Немного сумбурно изложил, но думаю идея ясна.

Спустя 4 минуты, 20 секунд (20.09.2011 - 15:05) olgatcpip написал(а):
так то оно понятно. $user_hash по сложнее в разы чем у меня.
Но не избыточно ли user_id?

Спустя 3 минуты, 20 секунд (20.09.2011 - 15:08) killer8080 написал(а):
Цитата (olgatcpip @ 20.09.2011 - 15:05)
Но не избыточно ли user_id?

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

Спустя 13 минут, 43 секунды (20.09.2011 - 15:22) killer8080 написал(а):
Можно в принципе обойтись и одной кукой
setcookie('user_hash', $user_id.':'.$user_hash, $expire, '.site.ru');
но особого смысла не вижу

Спустя 6 минут, 52 секунды (20.09.2011 - 15:29) olgatcpip написал(а):
я планирую как только авторизовался, в БД паспорта записать этот чудо-код.
Затем запомнить этот код или просто флаг поставить в локальной БД у соответствующего ида. Чтоб к паспорту не бегать каждое соединение.

Если перейти на форум, например, локально проверю, что не авторизован (сравню сессию с локальной БД), после этого пойду к паспорту сверяться (здесь сойдется и я запишу этот флаг локально уже на форум). Сравнения по этому коду.... Или же пришлось бы по 2м параметрам ид юзера и код. Одному иду юзера же доверять нельзя.

А при выходе, с паспорта прям в БД и в локальных снять этот параметр. в null установить.

Как только чел зайдет снова, после выхода из системы, у него кука будет, в БД подтверждения не будет, тогда и очищу локально куку на домене. а соответственно и везде будет выход.

К паспорту обращаюсь сугубо с сервера. Курлом. С кучей параметров для доверительного подключения. И напрямую с браузера туда не попасть. Чтобы скрыть место положение паспорта. Но кажется с паспорта таким образом не возможно управлять куками браузера пользователя.

Сильно сложно?


Спустя 15 минут, 26 секунд (20.09.2011 - 15:44) killer8080 написал(а):
Цитата (olgatcpip @ 20.09.2011 - 15:29)
я планирую как только авторизовался, в БД паспорта записать этот чудо-код.

И дырка в безопасности обеспечена, достаточно один раз отснифить юзера и всё, аккаунт угнан. Я же не с проста в примере привязывал хеш к ip адресу и заголовкам браузера wink.gif

Спустя 1 минута, 43 секунды (20.09.2011 - 15:46) olgatcpip написал(а):
я против этого ничего не имею, именно его я и назвала чудо-код

Спустя 4 минуты, 52 секунды (20.09.2011 - 15:51) olgatcpip написал(а):
Цитата
образом генерим $user_hash и сравниваем с $_COOKIE['user_hash']

ааааа.... вон оно что .... ясненько..

Спустя 30 минут, 28 секунд (20.09.2011 - 16:21) killer8080 написал(а):
Я имел ввиду сделать примерно так
Свернутый текст
// если не авторизован
if(!empty($_SESSION['auth'])){
// если введён логин пароль
if(!empty($_POST['login']) && !empty($_POST['password'])){
$login = mysql_real_escape_string($_POST['login']);
$password = mysql_real_escape_string($_POST['password']);
$q = mysql_query("
SELECT `id`, `login`, `password`
FROM `users`
WHERE `login`='"
.$login."' && `password`='".$password."'
"
);
if(mysql_num_rows($q) > 0){
list($_SESSION['user_id'], $login, $password) = mysql_fetch_row($q);
$_SESSION['auth'] = 1;
setcookie('user_id', $_SESSION['user_id'], 3600, '.site.ru');
setcookie('user_hash', get_user_hash($login, $password), 3600, '.site.ru');
}
else{
echo 'Не верный логин или пароль.';
}
}

// если есть куки от других серверов
elseif(isset($_COOKIE['user_id'], $_COOKIE['user_hash'])){
$q = mysql_query("
SELECT `login`, `password`
FROM `users`
WHERE `id`="
.(int)$_COOKIE['user_id']."
"
);
if(mysql_num_rows($q) > 0){
list($login, $password) = mysql_fetch_row($q);
if(get_user_hash($login, $password) == $_COOKIE['user_hash']){
$_SESSION['user_id'] = (int)$_COOKIE['user_id'];
$_SESSION['auth'] = 1;
}
}
}
}



function get_user_hash($login, $password){
$secret = 'bolshayaabracadabra';
return md5($login. md5($password).$_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR'].
(
isset($_SERVER['HTTP_X_REAL IP']) ? $_SERVER['HTTP_X_REAL IP'] : '').
(
isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : '').
(
isset($_SERVER['HTTP_ACCEPT']) ? $_SERVER['HTTP_ACCEPT'] : '').
md5($secret));
}

а на паспорт возложить только регистрацию новых юзеров, и синхронизацию таблиц users между серверами

Спустя 4 минуты, 41 секунда (20.09.2011 - 16:26) olgatcpip написал(а):
killer8080
Привязка к Ip и все такое - это хорошо. Но что мешает 2 параметра угадывать?
Недавно конкурс был. Я четко уяснила, что порой угадывать алгоритм не будут. В лоб. перебором! Наша задача чтобы перебирать запарились, а и вообще забанить частые обращения. Я так поняла нужно подсчитать количество переборов. А для этого увеличить длину того же хэша.
хэши переменной длины - это крутенько, лично мне нравится.
А вот запомнить по хэшу в зависимости от серверной переменной, чтобы забанить это надежней от сниферов по-моему. Нет?


Спустя 3 минуты, 58 секунд (20.09.2011 - 16:30) olgatcpip написал(а):
Я на паспорт думаю возложить запись секретика и стерание секретика (вход).
+ контрольные моменты. При этом сайт как работал, так и должен работать. Некоторые параметры вовсе в сесии, те что сейчас используются. Короче как банить и сра.. снифить начнут, так и буду думать. Но идея мне понравилась, я даже чуток усложнила у себя тут.

Спустя 1 минута, 45 секунд (20.09.2011 - 16:32) killer8080 написал(а):
Цитата (olgatcpip @ 20.09.2011 - 16:26)
Привязка к Ip и все такое - это хорошо. Но что мешает 2 параметра угадывать?

смысл в том, что если хакер перехватит куки пользователя, то он всё равно не сможет авторизоваться с его помощью с другого IP.
Какие 2 параметра угадать? Логин, пароль?

Спустя 14 минут, 42 секунды (20.09.2011 - 16:46) olgatcpip написал(а):
А т.е. перехватить IP сложно?
Достаточно попросить кликунть к себе. Вообще все параметры увидешь.
Кликни сюда Думаешь IP и все заголовки подставить нельзя.

Логин вообще виден, вон он у тебя killer8080 как правило и на сайте виден. Почта порой тоже не секрет. Ид юзера на форуме у тебя скорее 26630.
Да и логин узнавать не нужно согласно твоему алгоритму
Итого $_COOKIE['user_hash'] я перехватила, в том же месте взяла все-все заголовки сервера ид юзера, а что там, наверняка тем же способом получила, что и хэш.

// если есть куки от других серверов
elseif(isset($_COOKIE['user_id'], $_COOKIE['user_hash'])){
$q = mysql_query("
SELECT `login`, `password`
FROM `users`
WHERE `id`="
.(int)$_COOKIE['user_id']."
"
); // Т.Е. МЫ ВЗЯЛИ САМИ ЛОГИН НА СТОРОНЕ СЕРВЕРА
if(mysql_num_rows($q) > 0){
list($login, $password) = mysql_fetch_row($q); // ЭТО САМО СОБОЙ ПРОКАТИТ, МЫ ЖЕ ТОЛЬКО ЧТО ИЗ БАЗЫ ИХ ВЗЯЛИ
if(get_user_hash($login, $password) == $_COOKIE['user_hash']){
//СЮДА ПОПАЛИ АВТОМАТОМ, ПОТОМУ КАК УКРАЛИ И ХЭШ И ПАРАМЕТРЫ
$_SESSION['user_id'] = (int)$_COOKIE['user_id'];
$_SESSION['auth'] = 1;
}
}
}


Я не хакер, вообще никогда не занимлась этим. НО мне кто-то из здешних форумчан, говорит, кликни по ссылке. Я кликнула. Он все параметры вытянул.
Как серверные перемменные то я догадалась :) а как куки даже не интересовалась. Вот и получается.

Спустя 17 минут, 27 секунд (20.09.2011 - 17:04) olgatcpip написал(а):
Я тут почитала, так просто IP не подменить. Но если хакерить своего соседа или через одного провайдера то получится! smile.gif)

Спустя 3 часа, 6 минут, 53 секунды (20.09.2011 - 20:11) killer8080 написал(а):
Цитата (olgatcpip @ 20.09.2011 - 16:46)
А т.е. перехватить IP сложно?

Перехватить не сложно, подделать нельзя. Да, защита не идеальна, если хакер в одной локальной сети с жертвой, и у них общий внешний IP, то атака возможна, но от этого не защищены и обычные сессии.
Цитата (olgatcpip @ 20.09.2011 - 16:46)
Итого $_COOKIE['user_hash'] я перехватила, в том же месте взяла все-все заголовки сервера ид юзера, а что там, наверняка тем же способом получила, что и хэш.

Нет, не так всё просто smile.gif
Во первых хакеру не известно какие входные данные используются для получения хеша.
Во вторых не известен алгоритм шифрования, достаточно поменять переменные местами, при конкатенации, и на выходе уже другой хеш.
В третьих в предложенном алгоритме ещё используется секретный ключ
$secret = 'bolshayaabracadabra';
Перехватить его нельзя никак, на то он и секретный и хранится в конфигах сайта.(конечно если сайт не был предварительно взломан на уровне доступа к исходникам)
Цитата (olgatcpip @ 20.09.2011 - 16:46)
Я не хакер, вообще никогда не занимлась этим. НО мне кто-то из здешних форумчан, говорит, кликни по ссылке. Я кликнула. Он все параметры вытянул.
Как серверные перемменные то я догадалась smile.gif а как куки даже не интересовалась. Вот и получается.

Кликнув по ссылке хакер может узнать не так много, IP и http заголовки, куки перехватить таким путём нельзя, если конечно хакерский урл не на том же домене. Куки в основном крадут либо снифингом, либо через XSS уязвимости.
В любом случае этих данных не достаточно чтоб понять как формируется хеш, а подбирать его не реально, слишком большое количество комбинаций (3,4028236692093846346337460743177e+38)
Заманывают жертву на ссылку, обычно, для атак CSRF но это уже совсем другой вопрос.

Спустя 10 часов, 57 минут, 24 секунды (21.09.2011 - 07:08) olgatcpip написал(а):
так. что же получается.
ip не подделать.
зачем тогда такой сложный хэш?
Не достаточно ли сделать хэш зависимым от ip и секрет ключа. Даже если подделают куку, все равно не проникнут, так как ip не подделать

Я не логично рассуждаю? blink.gif

Спустя 45 минут, 56 секунд (21.09.2011 - 07:54) kirik написал(а):
Цитата (olgatcpip @ 21.08.2011 - 02:48)
ак вот хочется на поддоменах размещать разные города, да так, чтобы админка общая (общая админка не проблема для меня).

Что имеется ввиду под "поддоменах"? Это домен второго или третьего уровня? Если третьего, то просто ставь куку на .site.com как у killer8080'а в примере.

Присоединяюсь к twin и vasa_c, заказчик типичный мозгопар. Где бы не распологался сервер, пинга больше 200мс не будет. Этим временем можно спокойно пренебречь, ибо основную часть времени будет занимать генерация странички.
Описаная тобой система работать не будет.. а если и будет, то очень криво и за много-много денех smile.gif
Я бы посоветовал даже не браться. Такой опыт не будет полезным, только зря время потратишь.

Спустя 5 минут, 49 секунд (21.09.2011 - 08:00) olgatcpip написал(а):
Цитата
Что имеется ввиду под "поддоменах"?

третьего

Цитата
Где бы не распологался сервер, пинга больше 200мс не будет

Зато выборка из таблицы быстрее пролетит.

Цитата
Описаная тобой система работать не будет.. а если и будет, то очень криво
Цитата
Такой опыт не будет полезным, только зря время потратишь.

задумалась......

Спустя 6 минут, 7 секунд (21.09.2011 - 08:06) killer8080 написал(а):
Цитата (olgatcpip @ 21.09.2011 - 07:08)
так. что же получается.
ip не подделать.
зачем тогда такой сложный хэш?
Не достаточно ли сделать хэш зависимым от ip и секрет ключа. Даже если подделают куку, все равно не проникнут, так как ip не подделать

Я не логично рассуждаю?

в безопасности лишняя перестраховка не помешает, тем более ресурсов оно много не ест. smile.gif

Спустя 11 минут, 26 секунд (21.09.2011 - 08:18) killer8080 написал(а):
Кстати, что касается лучшего пинга, при расположении серверов в том же гео регионе что и юзер, утверждение весьма спорно! Время пинга зависит не только от расстояния между хостами, но и от топологии сети - числа хопов и толщины каналов. Например, у меня спидтест на Киев стабильно 92-96 мбит, а на местный, Симферопольский сервер выше 25мб редко поднимается, а всё потому, что мой провайдер не входит в местную точку обмена трафиком Crimea-IX и IP пакеты идут через Киев.
Попробуйте растолковать это заказчику.

Спустя 3 минуты, 8 секунд (21.09.2011 - 08:21) olgatcpip написал(а):
А как на счет того, что выборка из 1 000 000 000 записей быстрее будет чем из 100 000 ? это только по одному запросу.

Это решается memcachedом? да?

Спустя 4 минуты, 15 секунд (21.09.2011 - 08:25) kirik написал(а):
olgatcpip
Для хайлоадов что выносят, так это медиа контент (картинки всякие), используя CDN. А передать 10кб текста за 5тыщ километров - это не вопрос)

Спустя 3 минуты, 9 секунд (21.09.2011 - 08:28) kirik написал(а):
Цитата (olgatcpip @ 21.09.2011 - 01:21)
А как на счет того, что выборка из 1 000 000 000 записей быстрее будет чем из 100 000 ? это только по одному запросу.
Это решается memcachedом? да?

И мемкэшем тоже smile.gif Никто ведь не говорит, что разбивать систему по серверам - плохо. Несколько серверов в одном ДЦ обслуживающие один проект - это нормальная практика.
До 1 000 000 000 ещё дорасти нужно smile.gif Преждевременная оптимизация - зло.

Спустя 3 минуты, 14 секунд (21.09.2011 - 08:31) olgatcpip написал(а):
Цитата
используя CDN.

это за денюшку? так, уточняю..

Спустя 4 минуты, 53 секунды (21.09.2011 - 08:36) kirik написал(а):
olgatcpip
ага, но это только для контента.


_____________
Ласковое слово и кошке приятно... Плюсик в карму сойдет wink.gif
*smarty дока - новая любовь
Моё рукотворение ругайте, хвалите smile.gif
Веду маленький блог
в этом блоге публикую новые работы
WMR217126627282 wink.gif

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.