Форум сайта python.su
имеем след. неприятный момент: стандартные сессии в джанго никак не защищены от перехвата сида
разные разглагольствования в документации про секьюре_куки и прочая белиберда - это для пионеров. никакого практического смысла эти действия не несут. придется все делать самому.
итак, я хочу сделать следующее: сессиия должна не тупо подниматься по sessionid, но в поднятой сессии еще должны проверяться параметры предыдущего соединения на предмет совпадения с текущими. в частности, например, REMOTE_ADDR
как я понимаю, мне нужно переопределить django.contrib.sessions.SessionMiddleware (в частности, метод process_request), чтобы он после поднятия сессии производил проверку request.META на соответствие с session и в случае несоответствия, в request.session заводилась бы новая сессия
вопрос: как это сделать?
ибо у меня никак не получается заставить джангу подхватить сессии через мой миддлварь…
Офлайн
fetishОтключить стандартную мидлварь и включить свою на её место.
вопрос: как это сделать?
Офлайн
fetishПодтвердите фактами ваше утверждение, чтобы не вводить в заблуждение тех кто не в курсе этого вопроса, что это белеберда.
разные разглагольствования в документации про секьюре_куки и прочая белиберда - это для пионеров. никакого практического смысла эти действия не несут.
Офлайн
Если уж так хочется - стоит использовать HTTPS. Проверка REMOTE_ADDR тоже ломается “пионерскими” методами. Тогда как HTTPS вполне надежен - и изобретать ничего не нужно.
Офлайн
Daevaornну это понятно
Отключить стандартную мидлварь и включить свою на её место.
from django.contrib.sessions.middlware
class MySessionMiddleware(middleware.SessionMiddleware):
def process_request(self, request):
...
Андрей Светловне поможет
Если уж так хочется - стоит использовать HTTPS.
Андрей Светловнапример?
Проверка REMOTE_ADDR тоже ломается “пионерскими” методами.
romankrvзайдите в видеораздел на xakep.ru или video.antichat.ru и посмотрите как воруют чужие кукисы
Подтвердите фактами ваше утверждение, чтобы не вводить в заблуждение тех кто не в курсе этого вопроса, что это белеберда.
romankrvразработчикам ничего сообщать не нужно. они все правильно сделали. в америке бессмысленно привязывать сессию к ip-адресу по очень простой причине - у одного из самых крупных провайдеров америки - AOL - ip-адрес пользователя может смениться в любой момент.
И тогда вам нужно сообщить об этом разработчикам – указать им что они “пионеры” чтобы переделали свой “неудачный софт”.
Отредактировано (Апрель 7, 2009 22:29:06)
Офлайн
fetishну что же вы сами как пионер и не читаете документацию?:-) http://docs.djangoproject.com/en/dev/topics/http/sessions/#enabling-sessions
ну это понятно
а как это сделать-то?
Офлайн
DaevaornО.Е. !!! все заработало
Вот на место стандартной SessionMiddleware свою и ставьте.
Daevaornв документации подробно расписано как делать “хелло ворды”
ну что же вы сами как пионер и не читаете документацию?:-)
Офлайн
fetishДжанга пробегает по списку мидлварей, дергает каждую по порядку и вызывает методы в зависимости от стадии обработки запроса.
как джанго узнал, что нужно использовать мою миддлварь? неужели ему пофиг и он смотрит исключительно по именам методов?
fetishВы ошибаетесь. В документации покрыто очень много юзкейсов от простых до сложных. В том числе и ответ на ваш вопрос.
в документации подробно расписано как делать “хелло ворды”
о том как работает джанго и как с ней работать в документейшене почти ничего не сказано
Офлайн
1. У нас тоже большинство пользователей с динамическими айпи, или практически с общей внешней. Так что или не будет работать проверка и будут заводится новые сессии, или внутри одного провайдера/сети можно вполне украсть куки, и те пройдут проверку.
2. https позволяет закрыть траффик от третьих лиц, а следовательно украсть куки обычным сниффером не получится.
По поводу подставки IP - я не знаю простого способа это сделать.
Офлайн
Daevaornвот это я и подозревалл….
…и вызывает методы в зависимости от стадии обработки запроса.
Ferromanникакие снифферы не нужны
https позволяет закрыть траффик от третьих лиц, а следовательно украсть куки обычным сниффером не получится.
Ferromanвот именно
По поводу подставки IP - я не знаю простого способа это сделать.
Ferromanдинамическим, но, тем не менее, постоянным в течение сессии
У нас тоже большинство пользователей с динамическими айпи…
Ferromanв любом случае, круг атакующих сильно сужается
…или практически с общей внешней.
Ferromanа вот для этого есть уже другие способы
…или внутри одного провайдера/сети можно вполне украсть куки, и те пройдут проверку.
Офлайн