2015-04-16 2 views
7

Если я делаю запрос POST без использования формы и хочу предотвратить атаку CSRF, то могу сделать это, чтобы установить csrf-токен в метатег и вернуть его в заголовок при запуске запроса. Это хорошая практика?Является ли хорошей практикой хранить токен csrf в метатеге?

<meta name="csrf-token" content="xxx"> 

Поместите маркер обратно через заголовок, используя JQuery, например:

$.ajaxSetup({ 
    headers: { 
     'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
    } 
}); 

ответ

4

Да, это хорошая практика. Если вы используете ajax, я думаю, что это самое чистое решение.

Вы также можете поместить токен внутри формы (что более удобно при отправке всей формы), но если вы используете ajax, вам просто нужно пойти куда-нибудь, чтобы вы могли его захватить.

в скрытом поле или в метатеге оба являются очень хорошими вариантами.