как изолировать внешние POST запросы

ZETN1S

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

Вурдалак

Продвинутый новичок
В общем случае — никак. Но если цель — защита от CSRF, то всё решается добавлением дополнительного токена в hidden-поле. Злоумышленнику потребуется его значение для атаки.
 

ZETN1S

Новичок
расскажите поподробнее про токены
концепцию так сказать
 

Вурдалак

Продвинутый новичок
Если без паранойи, то можно просто передавать в hidden-поле идентификатор сессии. Если в обработчике запроса идентификатор не совпадает с текущим, то запрос считать некорректным.
 

prolis

Новичок
Можно и не прописывать в hidden, идентификатор сам придет с формой. Для защиты именно от постановки своей формы на чужие сайты этого будет достаточно
 

Вурдалак

Продвинутый новичок
Что значит идентификатор сам придёт с формой? Cookie? Злоумышленнику ничего тогда не помешает на своём сайте сделать форму, после отправки данных которой выполнится какое-то действие от имени пользователя, которого заманили на страницу этого злоумышленника.
 

Фанат

oncle terrible
Команда форума
Началось....
Конкурс, "кто сделает самое умное лицо".

ZETN1S
Для начала надо понять, что ВСЕ запросы к сайту - внешние.
"внутренних" - не бывает.

И CSRF токен от подделки на защищает.

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

Фанат

oncle terrible
Команда форума
потому что от "отправки данных из измененной формы со стороннего сайта" токен защищает ровно в той же мере, что и реферер
 

Вурдалак

Продвинутый новичок
Фанат, это не так. Реферер, как правило, можно узнать без проблем (если только sid в URL не передаётся, но, я надеюсь, этого никто не делает). А вот узнать или, тем более, угадать token практически невозможно. На это и строится защита.

P.S. Кстати, подделка реферера к этой теме отношения-то не имеет. Пользователь специально подделывать реферер как раз не будет.
 

Фанат

oncle terrible
Команда форума
Дети.
вопрос топикстартера, если кто не заметил, содержит в себе взаимоисключающие параграфы.

если речь идет о CSRF и форме, размещенной на сайте, то, извините, ни подделка, ни, соответственно, "угадывание" (вот уж совершенно бессмысленная операция) сюда вообще никаким образом не относятся.
если же речь идет именно о подделке реферера, то токен подделывается точно так же, как и реферер.

защита токеном ничем принципиально от защиты реферером не отличается.
у реферера только реализация хромает.

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

fixxxer

К.О.
Партнер клуба
Надо понимать, от чего мы защищаться хотим.

От CSRF прекрасно защитит внесение любого вариационного параметра в данные формы, меняющегося с каждым реквестом.
От парсера и curl-а не защитит ничего, кроме капчи.
От парсера, curl-а и вовлечения ручного труда (антикапчи) не защитит вообще ничего =)
 

Вурдалак

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

grigori

( ͡° ͜ʖ ͡°)
Команда форума
fixxxer например, на craigslist.org ввели pva (phone verified account) - подтверждение регистрации по городскому телефону из указанного при регистрации региона,
paypal при несовпадении страны по ip спрашивает часть номера банковского счета
это не защищает от фиктивной отправки формы, но очень усложняет достижение цели
 

whirlwind

TDD infected, paranoid
maxmind tv проверенная штука, тока стоит денег. Вопрос сводится к анекдоту про неуловимого Джо.
 
Сверху