Да, этого достаточно, чтобы предотвратить подделку межсайтовых запросов.
Идентификатор сеанса в файле cookie нельзя доверять. Допустим, пользователь вошел на mysite.com, а идентификатор сеанса находится в файле cookie. Теперь пользователь нажимает на ссылку на evilsite.com. evilsite.com имеет такой код
<img src="http://mysite.com/transfermoney.jsp?amount=1000.." />
Браузер отправит запрос на mysite.com, и , а также отправит файл cookie с идентификатором сеанса. Здесь нужно понять, что evilsite.com не может прочитать cookie, но он все еще может выполнить свою работу.
Политика браузера того же происхождения запрещает evilsite.com читать идентификатор сеанса, независимо от того, находится ли он в файле cookie или встроен в HTML-страницу. Но поскольку браузер автоматически отправляет cookie на ваш сервер , даже если ресурс был запрошен из HTML-кода в другом домене , у вас есть XSRF.
Для предотвращения этого рекомендуется указывать идентификатор сеанса в качестве параметра запроса. Если его добавить в качестве параметра запроса, evilsite.com не сможет получить доступ к идентификатору и, следовательно, не сможет поместить его в атрибут img src.
Однако помните, что если на вашем сайте есть уязвимости XSS, ничто не может помешать вам XSRF. Другими словами, если у вас есть уязвимости XSS, злоумышленник даже не захочет делать XSRF.