Redux è un luogo sicuro in cui archiviare i token JWT?

0

Ho insegnato a me stesso Redux, chiedendomi quanto è sicuro conservare i token JWT in uno stato di Redux.

Ad esempio, ecco un riduttore che è responsabile per l'impostazione e il ripristino di un token.

export default function loginReducer(state = {
    token: "",
}, action) {
switch (action.type) {
    case "SET_TOKEN":
        {
            return {
                ...state,
                token: action.data,
            }
            break;
        }
    //other cases here
    return state
}

Quindi, puoi memorizzare un token nel modo seguente.

handleSubmit(values) {
    //Calling an API
    }).then((response) => {
        response.json().then((jsonReponse) => {         
         //This is where the token is stored!
         this.props.dispatch(loginAction.setToken(jsonReponse.token));
        });
    });
}

Lo scopo principale dell'uso di Redux è di organizzare gli stati in un posto, quindi ho pensato che sarebbe ragionevole mantenere i token lì.

Tuttavia, non ho trovato una buona risorsa informativa che spieghi quanto sia sicuro / vulnerabile farlo.

(Ho trovato diversi post come localStorage vs Cookies. Apparentemente i cookie sarebbero un luogo sicuro per la memorizzazione di token, per quanto Ho studiato )

Qualche consiglio sarà apprezzato!

    
posta YMD 25.05.2017 - 00:55
fonte

1 risposta

2

Reduce memorizza lo stato nell'oggetto JavaScript . Ciò lo rende vulnerabile a un attacco XSS proprio come localStorage o sessionStorage. Se hai bisogno che il tuo JWT sia leggibile dal lato del cliente, puoi usare liberamente Redux, ma assicurati di aver cura di XSS correttamente. Se il JWT non è richiesto sul lato client, meglio lasciarlo in cookie httpOnly e gestire invece CSRF.

    
risposta data 25.05.2017 - 10:55
fonte

Leggi altre domande sui tag