Skip to main content

Onartu JWT zerrenda beltza

Azalpena

Diseinuz, JWTak (JSON Web Tokens) guztiz aberrigabeak (stateless) dira; beraz, igorle batek baliozko giltza (token) bat sinatzen duenean, giltza hori benetakoa dela egiaztatu ahal izango du aplikazioak. Horrek dakarren segurtasun arazoa da ihes egindako (leaked) giltza oraindik erabilgarria izango litzatekeela eta ezin daitekeela baliogabetu, sinadurak baliozkoa izaten jarraitzen duelako arazoak eragindako sinadura aplikazioak espero duenarekin bat datorren bitartean. Hori dela eta, JWT autentifikazioa erabiltzean, iraungitako edo baliogabetutako giltzen (tokenen) zerrenda beltza kudeatu beharko luke aplikazioak, giltzaren bat baliogabetu behar den kasuetan, erabiltzailearen segurtasuna bermatzeko.

express-jwt-blacklist adibidea

Node.js proiektu batean Express-jwt zerrenda beltza (express-jwt-blacklist) egikaritzeko adibidea express-jwt erabiliz. Kontuan izan garrantzitsua ez dela express-jwt-zerrenda beltzaren biltegirako ezarpen lehenetsiak (memorian) erabiltzea, baizik eta Redis bezalako kanpoko biltegiren bat erabiltzea Node.js prozesu askotan giltzak baliogabetzeko.

const jwt = require('express-jwt');
const blacklist = require('express-jwt-blacklist');

blacklist.configure({
tokenId: 'jti',
strict: true,
store: {
type: 'memcached',
host: '127.0.0.1',
port: 11211,
keyPrefix: 'nirewebaplikazioa:',
options: {
timeout: 1000
}
}
});

app.use(jwt({
secret: 'nire-sekretua',
isRevoked: blacklist.isRevoked
}));

app.get('/logout', (req, res) => {
blacklist.revoke(req.user)
res.sendStatus(200);
});

Beste blogari batzuek diotena

Marc Busqué-ren bloga:

...gehitu baliogabetze geruza bat JWTri, izaera apatrida galtzea suposatzen badu ere.