2009-08-20 4 views
4

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

Я думаю, что у меня есть хороший способ сделать это, но я бы хотел запустить его из-за переполнения стека, чтобы убедиться, что есть более простой способ.

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

Лучшая эвристика, которую я нашел, - это подсеть/время класса B (некоторые интернет-провайдеры используют вращающиеся прокси на разных классах C). Это создало для нас наименьшее количество ложных срабатываний, поэтому я хотел бы придерживаться этого метода.

Прямо сейчас я подумываю применить фильтр перед фильтром для каждого запроса, который отслеживает, какие Подсети и session_ids пользователь использовал в memcached, и применяет эвристику к этому, чтобы определить, является ли общий файл cookie.

Проще или проще реализовать идеи? Любые существующие плагины, которые это делают?

ответ

1

Вы можете связать информацию о сеансе с информацией обозревателя. Если люди заходят через 3 или 4 разных типа браузера в течение определенного периода времени, вы можете сделать вывод, что что-то подозрительное может продолжаться.

Альтернативный ответ опирается на немного социальной инженерии. Если у вас есть эвристика, которой вы доверяете, вы можете предупредить пользователей (вверху страницы), что вы подозреваете, что они делят свою учетную запись и что за ними внимательно следят. Ссылка «связаться с нами» в предупреждении позволит законным пользователям самим объяснять (и, следовательно, быть окончательно отменена). Это может свести к минимуму проблему, чтобы снять ее с вашего радара.

+0

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

+0

Рад, что это работает для вас. Просто из любопытства вы собираетесь прямо запретить подозреваемых людей или предупредить их каким-то образом, подобным тому, который я предложил? –

1

Один из способов, который я могу представить, - установить одинаковое случайное значение как в сеансе, так и в файле cookie с обновлением каждой страницы. Проверьте эти два, чтобы убедиться, что они одинаковые. Если кто-то делится своей сессией, cookie и сеанс выходят из строя.

+0

Это отличная идея. Вопрос: могли ли это вызвать условия гонки в дикой природе? Как и в случае, если кто-то посередине связывается с кучей ссылок, чтобы открыть их на вкладках, считаете ли вы, что последовательность может перепутаться и дать ложный результат? Во всяком случае, я только что реализовал его так, как я предложил сегодня днем, так как мне нужно было закончить его. –

Смежные вопросы