Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
Перечитал весь инет - чего только люди друг на друга не наговорят во время обсуждения проблемы...но только не по делу ( В общем проблема защиты от CSRF на одностраничном приложении: - мы генерируем уникальный токен и при первом запросе кладем его на страницу в специальное поле _csrf и попутно зашифровываем и кладем tuj в кук (сессии не рассматриваю по политическим причинам - они мне не нравятся совсем:)) ) - ежели вдруг каким-то образом страничка в моем приложении выполнит запрос, то вместе с ним на сервер прийдет скрытое поле _csrf и кук с зашифрованным токеном - ура сравнили все хорошо! - но не тут-то было - страничками постить на сервер запросы я тоже не люблю - поэтому пользуюсь ajax запросами - тут вроде бы тоже ничего сложного : берем из тайного поля токен, помещаем его в спец заголовок и посылаем запрос - а с ним на сервер идет и кук с зашифрованным токеном - все опять ок. - но вражина юзер решил открыть приложение еще и на другой вкладке - естественно сервер честно сгенерирует для той странички новый токен а вместе с ним прийдет и обновленный кук - и тут все запросы с 1й вкладки будут считаться вражескими!! Кто как выходит из данной ситуации?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 03:40 |
|
||
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
spКто как выходит из данной ситуации?? мы в неё не попадаем. sp- но вражина юзер решил открыть приложение еще и на другой вкладке - естественно сервер честно сгенерирует для той странички новый токен а вместе с ним прийдет и обновленный кук - и тут все запросы с 1й вкладки будут считаться вражескими!! не естесвенно, а при помощи говнокода кука ведь прилетела, а скрытое поле - нет и правильно - сам уж решай что предложить юзеру - отказаться от нового сеанса или закрыть старый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 06:46 |
|
||
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
sp, можно этот секретный ключ сразу класть в куку (на сервере), а при ajax запросе доставать его из куки и добавлять в параметры - тогда у всех страничек будет одно и то же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 12:24 |
|
||
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
spКто как выходит из данной ситуации?? не создаём себе геморройных ситуаций. ваше решение — бред. ни от чего не защищает, а проблем добавляет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 14:29 |
|
||
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
sp, @Html.AntiForgeryToken(salt) и не калупайте себе итаг уже замученный мозг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 14:35 |
|
||
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
hVostt, вы хоть пост прочитали? такое впечатление что вы ситуацию не поняли - токен и так создается, но этот ваш стандартный токен защищает от атаки только в многостраничном приложении...улавливаете разницу??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 17:15 |
|
||
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
ИзопропилspКто как выходит из данной ситуации?? мы в неё не попадаем. sp- но вражина юзер решил открыть приложение еще и на другой вкладке - естественно сервер честно сгенерирует для той странички новый токен а вместе с ним прийдет и обновленный кук - и тут все запросы с 1й вкладки будут считаться вражескими!! не естесвенно, а при помощи говнокода кука ведь прилетела, а скрытое поле - нет и правильно - сам уж решай что предложить юзеру - отказаться от нового сеанса или закрыть старый. поле тоже прилетело - как же страниуа без поля полетит - ее начальник не выпустит! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 17:16 |
|
||
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
Яростный Мечsp, можно этот секретный ключ сразу класть в куку (на сервере), а при ajax запросе доставать его из куки и добавлять в параметры - тогда у всех страничек будет одно и то же. может быть - но почему-то так никто не делает, тот же ASP.NET мог бы такое делать и это было бы проще чем в каждую страницу вставлять поле. не знаю... пойду на StackOverflow - там люди добрей ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 17:20 |
|
||
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
Ну вот вражеский народ (на StackOverflow) и то добрее и профессиональней оказался :) суть в следующем - что CSFR код генерируется один раз на всю сессию (это когда сессия есть на сервере). в моей ситуации значит надо один раз токен сгенерировать и положить в кук и затем распихивать его по страницам csrf-protection-by-storing-nonce-in-session-variable-and-form ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 17:29 |
|
||
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
в общем я понял в чем моя ошибка была - многие статьи пишут что для пущей секретности данный токен надо как можно чаще менять и выпускать его новый для каждого ресурса/страницы, а по науке (об этом нигде прямо не указано) он генерируется один раз на сессию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 17:43 |
|
||
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
spНу вот вражеский народ (на StackOverflow) и то добрее и профессиональней оказался :) суть в следующем - что CSFR код генерируется один раз на всю сессию (это когда сессия есть на сервере). в моей ситуации значит надо один раз токен сгенерировать и положить в кук и затем распихивать его по страницам csrf-protection-by-storing-nonce-in-session-variable-and-form ничё не понял. то вы пишите про одностраничное приложение, то теперь вы уже по каким-то страницам что-то там распихиваете. у меня большие сомнения, что речь идёт о реальном проекте. потому что с таким подходом вряд ли можно дойти до чего-то вменяемого, интересного хотябы десятку пользователей во всём рунете, не говоря уже о каких-то призрачных миллионах, каждый второй который норовит взломать сайт. ещё раз AntoForgeryToken прекрасно справляется с поставленной задачей. и количество страниц 1 или тысяча, совершенно по барабану сколько там их у вас. вообще до фанаря. до лампочки. плевать. не имеет значения. не выдумывайте. и не парьте себе и людям мозг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 20:56 |
|
||
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
hVosttspНу вот вражеский народ (на StackOverflow) и то добрее и профессиональней оказался :) суть в следующем - что CSFR код генерируется один раз на всю сессию (это когда сессия есть на сервере). в моей ситуации значит надо один раз токен сгенерировать и положить в кук и затем распихивать его по страницам csrf-protection-by-storing-nonce-in-session-variable-and-form ничё не понял. то вы пишите про одностраничное приложение, то теперь вы уже по каким-то страницам что-то там распихиваете. у меня большие сомнения, что речь идёт о реальном проекте. потому что с таким подходом вряд ли можно дойти до чего-то вменяемого, интересного хотябы десятку пользователей во всём рунете, не говоря уже о каких-то призрачных миллионах, каждый второй который норовит взломать сайт. ещё раз AntoForgeryToken прекрасно справляется с поставленной задачей. и количество страниц 1 или тысяча, совершенно по барабану сколько там их у вас. вообще до фанаря. до лампочки. плевать. не имеет значения. не выдумывайте. и не парьте себе и людям мозг. вы вообще понимаете о чем речь идет - речь идет об одностраничном приложении не использующем сессии на сервере!! в котором вся работа выполняется при помощи ajax запросов и при этом пользователь может открыть несколько закладок с одним приложением! внимательно прочтите - думаю поразмыслив поймете почему AntoForgeryToken вообще никак не будет справляться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 23:46 |
|
||
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
spвы вообще понимаете о чем речь идет а отличие от тебя - понимаем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 00:01 |
|
||
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
spречь идет об одностраничном приложении не использующем сессии на сервере!! при чём тут ваши сессии?? The incoming request has a cookie called __RequestVerificationToken The incoming request has a Request.Form entry called __RequestVerificationToken These cookie and Request.Form values match spвнимательно прочтите я не думаю, что прочитав ваш бессмысленный бред еще более внимательно, от этого что-то изменится. ваш велосипед во-первых, ни от чего ваше приложение не защищает, во-вторых, доставляет проблем. говорю вам в последний раз. можете возвращаться на стекофелфлоу и продолжать клепать свой велосипед с квадратными колёсами. AntyForgeryToken прекрасно справляется с возложенной на него задачей, и точка. конец бестолковой дискуссии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 00:52 |
|
||
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
hVostt, понятно вы любитель все делать параллельно и перпендикулярно:) и для вас шаг вправо или влево а также прыжок на месте - провокация и об этом надо донести куда следует :) вас раздражают нестандартные решения и постановки задачи!? хотите поговорить об этом?))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 01:12 |
|
||
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
Изопропил, :) ваш токен не работает без сессии - и что вы в этом можете понимать... ну ну ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 01:14 |
|
||
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
spпонятно вы любитель все делать параллельно и перпендикулярно:) и для вас шаг вправо или влево а также прыжок на месте - провокация и об этом надо донести куда следует :) вас раздражают нестандартные решения и постановки задачи!? хотите поговорить об этом?))) послушайте, умник. что меня раздражает, это наглая и упёртая тупость. нижеприведённый код отрабатывает без проблем в неограниченном количестве одновременных вкладок, без какого-либо участия сессий, без аутентификации и чего-бы-то-ни-было-ещё. если вы размножите формы на странице, это тоже будет работать. если вы будете использовать AJAX POST (JSON, XML), и это тоже будет работать. и защита от CSRF полная. если, конечно, не допустить дыру для XSS. вместо того чтобы задвигать здесь какие-то идиотские темы про то, какие на SO все добренькие, а тут злые и совсем вам не помогают, идите лучше учите уроки. если клиника мозга, то уже не помочь ничем. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 02:45 |
|
||
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
hVosttspКто как выходит из данной ситуации?? не создаём себе геморройных ситуаций. ваше решение — бред. ни от чего не защищает, а проблем добавляет. я думаю чтоб впредь вы сильно не раздражались - не стоит так отвечать! после такого ответа на какую реакцию вы расчитывали?) нельзя было конструктивно и без пренебрежительного тона как подобает специалистам обсудить воррос??? по поводу вашего примера - возможно сейчас в MVC фреймворке это так как вы и привели, но в те времена когда мы пользовались ASP.NET дела обстояли иначе да в других средах токен привязан к сессии возьмите Ruby, Django и другие. мы используем Node.js+Express - в нем тоже токен привязан к сесси но это становится ограничением при масштабировании - поэтомк переписываем модуль CSRF поэтому и спрашивал. тут написам нормальный пост а в ответ посыпались одни посылки и оскорбления... чая я тоже не железный - кровинушка то у меня русская - вот и размахался тут руками аж неловко, но не я в этом виноват. обидно что почти каждый пост на SQL.RU нынче обычно заканчиваетмя драками - я уже боюсь сюда даже писать сплошь хамство и оскорбления не в пример зарубежным форумам... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 03:49 |
|
||
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
sp, Сами по себе драки - ничего страшного, во многих случаях от них даже польза бывает. А вот переход на личности и оскорбление - криминал. Поэтому: Модератор: Мембер hVostt получает строгое предупреждение! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 09:47 |
|
||
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
sp, давайте без демагогии? чем вам это решение не устраивает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 10:20 |
|
||
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
spчая я тоже не железный - кровинушка то у меня русская - вот и размахался тут руками аж неловко, но не я в этом виноват. тьфу... да вы даже не используете ASP.NET, а пишите сюда — в форум по ASP.NET . целенаправленно вводите людей в заблуждение. чото спорите. делаете утверждения, не соответствующие истине. а потом пишите "я не виноват". знаете как это называете? думаете на зарубежном форуме к вам после такого лучше отнесутся? да, может дилекатней, подумают про себя <нехорошее слово>, а в слух не скажут. чего вы добиваетесь, я уже перестал понимать окончательно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 10:34 |
|
||
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
hVosttspчая я тоже не железный - кровинушка то у меня русская - вот и размахался тут руками аж неловко, но не я в этом виноват. тьфу... да вы даже не используете ASP.NET, а пишите сюда — в форум по ASP.NET . целенаправленно вводите людей в заблуждение. чото спорите. делаете утверждения, не соответствующие истине. а потом пишите "я не виноват". знаете как это называете? думаете на зарубежном форуме к вам после такого лучше отнесутся? да, может дилекатней, подумают про себя <нехорошее слово>, а в слух не скажут. чего вы добиваетесь, я уже перестал понимать окончательно. Вы плохо думаете о людях)) в отличие от наших псевдоспециалистов, там даже на дилетантский вопрос дают подробный и обстоятельный ответ! Спасибо за науку - сам виноват, новое поколение набежало на форум и он становится не форумом а помойным местом :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 12:47 |
|
||
|
CSRF и одностраничное приложение и на нескольких вкладках: как???
|
|||
|---|---|---|---|
|
#18+
sp, простите, а Вы можете показать, кто первый начал и кого оскорблять? Если человек считает решение бредом, но при этом не переходит на личности, это оскорбление? Второй вопрос: это "оскорбления" побудили Вас утверждать то, что AntiForgeryToken не решает задачу, пока Вам код не показали? P.S.: в следующий раз начните с описания задачи, исключив подробности о том, какую часть инета Вы перечитали, какое решение придумали и как обойти затык, созданный этим решением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 14:49 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=18&tid=1357962]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
58ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
| others: | 218ms |
| total: | 385ms |

| 0 / 0 |
