От OWASP (https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF) )
Cross-Site Request подлог (CSRF) это нападение, что силы конечный пользователь для выполнения нежелательных действий в веб-приложении, в котором они в настоящее время аутентифицированы. Атаки CSRF специально предназначены для запросов, изменяющих состояние, а не кражи данных, поскольку злоумышленник не имеет возможности увидеть ответ на поддельный запрос. С небольшой помощью социальной инженерии (например, при отправке ссылки по электронной почте или в чате) злоумышленник может обмануть пользователей веб-приложения в выполнении действий выбора злоумышленника. Если жертва является обычным пользователем, успешная атака CSRF может заставить пользователя выполнять запросы на изменение состояния, такие как перенос средств, изменение их адреса электронной почты и т. Д. Если жертва является учетной записью администратора, CSRF может поставить под угрозу все веб-приложение.
Вектор атаки CSRF по определению не находится на том же сервере, что и атакуемый сервер, поэтому он не имеет доступа к этой информации.
Рудиментарный пример:
Жертва - Боб
сайта - foo.com
Атакующий - Джон
Джон не имеет доступа к foo.com, но у него есть доступ к Бобу , либо через веб-сайт, либо по электронной почте. Он знает, как работает foo.com, поэтому он может связывать запрос либо с электронным письмом, либо с вредоносным веб-сайтом, который не находится в домене foo.com. Это отправит запрос и подтвердит учетные данные Боба.
Политика одного и того же происхождения не позволяет Джону увидеть или перехватить что-либо из версии Bob's foo.com, поэтому ключ CSRF можно сохранить на странице, которую Боб получает с сайта foo.com, даже не увидев Джона.
Если бы Джон смог использовать JS, чтобы фактически увидеть токен, это означало бы, что у Джона есть доступ к запросам от foo.com, и в этом случае это будет либо человек в середине или внутри человека атака.
В принципе, цель ключа CSRF заключается в том, чтобы остановить атаку CSRF. Если сам ключ CSRF перехвачен, произошла другая атака.
У вас есть пример JS, который сможет украсть его при тех же условиях, где он сможет выполнить CSRF? Обратите внимание на ** C ** в CSRF. – the8472
И как ваш злоумышленник получает код JS, выполненный на этом конкретном веб-сайте? – CBroe
Если третья сторона может выполнить произвольный Javascript на вашем сайте, у вас гораздо хуже проблем, чем csrf. Это похоже на вопрос: «Какой смысл в замке на моей двери, если плохой парень уже сбил стену?» –