ФорумПрограммированиеPythonDjango → django csrftoken

django csrftoken

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 3 декабря 2011 г. 11:17, спустя 6 минут 52 секунды

    Какой смысл в CSRF-защите для сайта-визитки с формой обратной связи, которому не нужны сессии? Что изменится, если эту защиту убрать?

    ну ты говоришь про бекенд. а на фронтенде тоже хуйня всякая бывает :-)

    например форма обратной связи и через csrf + какой нить варезник с миллионом посетителей можно без палева спамить на непонятные адреса или тп
    ну или голосования накручивать которые только по IP блокируют ревотинг.

    ага, я защищаю джангу =)

    пхп большее гавно, спору нет :)
    Сапожник без сапог
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 3 декабря 2011 г. 11:21, спустя 3 минуты 30 секунд

    например форма обратной связи и через csrf + какой нить варезник с миллионом посетителей можно без палева спамить на непонятные адреса или тп

    т.е. всё ведёт к тому, что прежде чем послать форму пользователь должен открыть страницу. а открыть страницу - это создать сессию
    не всё полезно, что в swap полезло
  • mathete

    Сообщения: 435 Репутация: N Группа: Джедаи

    Spritz 3 декабря 2011 г. 11:34, спустя 12 минут 45 секунд


    например форма обратной связи и через csrf + какой нить варезник с миллионом посетителей можно без палева спамить на непонятные адреса или тп

    т.е. всё ведёт к тому, что прежде чем послать форму пользователь должен открыть страницу. а открыть страницу - это создать сессию


    на чем ты пишешь, что у тебя "открыть страницу" не мыслимо без "создать сессию"?

    Ещё раз: сессия это персонализация клиента. где-то она нужна, а где-то нет…
    csrf-защита: это защита на самом входе: "а запрос случайно не левый?"
    Да, на практике так и получается в большинстве случаев, что тебя csrf-защита интересует только если у тебя сессии, да ещё и с аутентикацией. НО это не повод мешать в одну кучу мух с котлетами.

    Я там где-то выше накидал архитектуру. Посмотри, ещё раз, пожалуйста…
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 3 декабря 2011 г. 11:42, спустя 7 минут 46 секунд


    например форма обратной связи и через csrf + какой нить варезник с миллионом посетителей можно без палева спамить на непонятные адреса или тп

    т.е. всё ведёт к тому, что прежде чем послать форму пользователь должен открыть страницу. а открыть страницу - это создать сессию
    не понял что ты хотел сказать если честно)
    Сапожник без сапог
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 3 декабря 2011 г. 11:56, спустя 14 минут 59 секунд

    сессия это персонализация клиента. где-то она нужна, а где-то нет…

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

    "а запрос случайно не левый?"

    что значит "левый"?

    phpdude, защита от CSRF (спама в комментариях) подразумевает, что сервером обрабатываются формы только от тех клиентов, которые предварительно запросили страницу с этой формой. Т.е. сперва GET (выдаётся кука), потом POST
    не всё полезно, что в swap полезло
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 3 декабря 2011 г. 12:04, спустя 7 минут 4 секунды

    phpdude, защита от CSRF (спама в комментариях) подразумевает, что сервером обрабатываются формы только от тех клиентов, которые предварительно запросили страницу с этой формой. Т.е. сперва GET (выдаётся кука), потом POST

    вот это правильно, для этого оно и нужно, в кейке есть такой же компонент уже года три
    Спустя 65 сек.
    и это и является ответом на вопрос ТС
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 3 декабря 2011 г. 12:05, спустя 1 минуту 1 секунду

    phpdude, защита от CSRF (спама в комментариях) подразумевает, что сервером обрабатываются формы только от тех клиентов, которые предварительно запросили страницу с этой формой. Т.е. сперва GET (выдаётся кука), потом POST

    спасибо кэп
    Сапожник без сапог
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 3 декабря 2011 г. 12:07, спустя 2 минуты 5 секунд

    Если я плохиш, я могу типа "в curl" или в "зловредном js" записать свой любой токен и повторить его в форме и все проканает.

    чтобы не проканывало, этот токен генерируется не от балды, а по ключу, который задается в конфиге (в кейке так)
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 3 декабря 2011 г. 12:08, спустя 1 минуту 26 секунд

    phpdude, я тонко намекаю что сессии нужны везде где есть формы
    не всё полезно, что в swap полезло
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 3 декабря 2011 г. 12:15, спустя 6 минут 46 секунд

    master, чем ксрф куки не вариант? не понимаю =))

    ведь куку с левого сайта не поставить ни в фрейме никак?! и никак не узнать. это вполне верное решение. низкоуровневое, не требуеющее ресурсов дополнительных, красивое, лаконичное решение
    Сапожник без сапог
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 3 декабря 2011 г. 12:41, спустя 26 минут 36 секунд

    phpdude, вариант. только не очень гибкий. сессия может дробиться, например, нужен признак не просто что сайт открыт, а что запрошена для редактирования конкретная форма
    не всё полезно, что в swap полезло
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 3 декабря 2011 г. 12:46, спустя 4 минуты 52 секунды

    master, и в чем сложность эту же инфу записать в куки? xD

    csrf_opened_forms=app.forms.editpreferences,app.forms.addcomment

    ну и удалять эту инфу при коммите формы
    Сапожник без сапог
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 3 декабря 2011 г. 12:49, спустя 2 минуты 20 секунд

    phpdude, открыто несколько вкладок с одной и той же формой. отправляешь одну, ключ обновляется, отправляешь вторую, тебя посылают. вот поэтому передавать через пост "гибкий" вариант
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 3 декабря 2011 г. 12:57, спустя 8 минут 21 секунду

    я чего-то сморозил
    Спустя 26 сек.
    куку-то можно обновить
    Спустя 123 сек.
    хотя, не, смысл есть, для каждой формы надо создавать куку, чтобы они не перетирались, либо перезаписывать много данных постоянно
    Спустя 44 сек.
    да и мне кажется, что этот метод был разработан с расчетом "на уродов, которые выключают куки"
  • mathete

    Сообщения: 435 Репутация: N Группа: Джедаи

    Spritz 3 декабря 2011 г. 13:20, спустя 23 минуты 13 секунд


    сессия это персонализация клиента. где-то она нужна, а где-то нет…

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


    Персонализация клиента === идентификация браузера.
    Под клиентом подразумевается, естественно, client в паре client <->server (надеюсь с подобной терминологией есть знакомство?)

    По прежнему настаиваю: она нужна далеко не всегда

Пожалуйста, авторизуйтесь, чтобы написать комментарий!