Статья про xss и csrf кажется неправильной - PullRequest
0 голосов
/ 29 июня 2019

Я нашел эту статью в Интернете о xss и csrf https://www.redotheweb.com/2015/11/09/api-security.html, когда вы прокручиваете весь путь до «решения», он говорит вам об использовании токена и файла cookie сеанса. Ниже приведен пример кода. Мой вопрос в том, что когда происходит атака xss, так называемый хакер может просто запустить этот кусок кода. Извлеките токен из локального хранилища, и файл cookie автоматически присоединится. Или я что-то упустил?

authenticate(login, password)
    .then(function(authentication) {
        window.sessionStorage.setItem('token', authentication.token); // store token
    })
    .then(getAccounts)
    .then(function(accounts) {
        // display the accounts page
        // ...
    })
    .catch(function(error) {
        // display error message in the login form
        // ...
    });

/**
 * @return {Promise}
 */
function getAccounts() {
    return fetch('https://api.bobank.com/accounts', {
        headers: {
            'Authorization': 'Token ' + window.sessionStorage.getItem('token'), // <= include token
            'Content-Type': 'application/json; charset=utf-8',
            'Accept': 'application/json',
        },
        credentials: 'include' // <= include session cookie
    }).then(function(response) {
        return response.json();
    })
}

Мой конкретный вопрос: эта статья неправильная? И есть ли безопасный метод решения этой проблемы.

1 Ответ

0 голосов
/ 30 июня 2019

Да, и атака XSS обычно может делать все, что может делать остальная часть кода. Распространено заблуждение, что XSS необходимо украсть токены или файлы cookie сеанса, чтобы быть успешным. Если вы уязвимы для XSS, этот XSS может (как вы указали) просто использовать тот же код и, таким образом, достичь CSRF.

...