¿Es Redux un lugar seguro para almacenar tokens JWT?

0

Me he estado enseñando a mi mismo Redux, preguntándome qué tan seguro es almacenar tokens JWT en un estado de Redux.

Por ejemplo, aquí hay un reductor que es responsable de configurar y restablecer 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
}

Luego, puedes almacenar un token de la siguiente manera.

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));
        });
    });
}

El propósito principal de usar Redux es organizar estados en un lugar, por lo que pensé que sería razonable mantener los tokens allí.

Sin embargo, no he encontrado un buen recurso de información que explique qué tan seguro / vulnerable es hacerlo.

(Encontré varias publicaciones en localStorage vs Cookies. Al parecer, las cookies serían un lugar seguro para almacenar tokens, en la medida en que He investigado )

Cualquier consejo será apreciado!

    
pregunta YMD 25.05.2017 - 00:55
fuente

1 respuesta

2

Redux almacena el estado en el objeto JavaScript . Esto lo hace vulnerable a un ataque XSS como localStorage o sessionStorage. Si necesita que su JWT sea legible en el lado del cliente, puede usar Redux libremente, solo asegúrese de cuidar el XSS correctamente. Si no se requiere el JWT en el lado del cliente, mejor déjelo en la cookie httpOnly y maneje el CSRF en su lugar.

    
respondido por el Marko Vodopija 25.05.2017 - 10:55
fuente

Lea otras preguntas en las etiquetas