2016-06-28 4 views
0

У нас есть веб-приложение ASP.Net, которое мы планируем переместить в другой стек, например Python или Ruby. Мы не хотим заменять все приложение одним махом и стараемся заменить открытый REST API на куски. Наши мысли - запустить новое веб-приложение на стороне существующего приложения .Net и направить некоторый запрос ajax по мере внедрения.Cross Platform CSRF

Мой вопрос: Есть ли кроссплатформенные библиотеки CSRF, которые мы можем использовать для проверки запросов как на стороне .Net, так и на стеке Python/Ruby/Node?

В идеале, когда конечная точка API реализована в новом стеке, мы просто укажем конечную точку REST на новый url.

+1

Вы можете реализовать свои собственные, используя простую технику, такую ​​как [Double Submit Cookies] (https://www.owasp.org/index.php/Cross-Site_Request_Forgery_ (CSRF) _Prevention_Cheat_Sheet # Double_Submit_Cookie) - код с обеих сторон должны быть достаточно простыми и интероперабельными. – SilverlightFox

+0

Это точно хочу, я хочу! Спасибо! – Jonathan

+0

Добавлено как ответ, так как он решает вашу проблему! – SilverlightFox

ответ

1

Вы можете реализовать свои собственные, используя простую технику, такую ​​как Double Submit Cookies - код с обеих сторон должен быть достаточно простым и совместимым.

Double Submit Cookies работает, устанавливая случайное значение (надеюсь, генерируемое CSPRNG или используя другой непредсказуемый метод) в качестве файла cookie и скрытого поля формы.

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

Потому что это простая проверка и может быть достигнута в обеих фреймах легко (псевдокод: if cookie != hidden_field then <reject>), это должно быть просто реализовать.