250 votes

Avertissement: Buffer () est obsolète en raison de problèmes de sécurité et d'utilisabilité lorsque je déplace mon script vers un autre serveur

Obtention d'une erreur lors du déplacement du script vers un autre serveur.

(nœud: 15707) [DEP0005] DeprecationWarning: Buffer () est obsolète en raison de problèmes de sécurité et d'utilisabilité. Veuillez utiliser les méthodes Buffer.alloc (), Buffer.allocUnsafe () ou Buffer.from () à la place.

Versions actuelles:

 Ubuntu 16.04.4 LTS  
Node - v10.9.0  
NPM - 6.2.0  

La version précédente:

 Ubuntu 14.04.3 LTS
NPM - 3.10.10
Node - v6.10.3

 exports.basicAuthentication = function (req, res, next) {
    console.log("basicAuthentication");
    if (!req.headers.authorization) {
        return res.status(401).send({
            message: "Unauthorised access"
        });
    }
    var auth = req.headers.authorization;
    var baseAuth = auth.replace("Basic", "");
    baseAuth = baseAuth.trim();
    var userPasswordString = new Buffer(baseAuth, 'base64').toString('ascii');
    var credentials = userPasswordString.split(':');

    var username = credentials[0] !== undefined ? credentials[0] : '';
    var password = credentials[1] !== undefined ? credentials[1] : '';
    var userQuery = {mobilenumber: username, otp: password};
    console.log(userQuery);
    User.findOne(userQuery).exec(function (err, userinfo) {
        if (err || !userinfo) {
             return res.status(401).send({
                message: "Unauthorised access"
             });
        } else {
            req.user = userinfo;
            next();
        }
    });

 }

615voto

Nebojsa Sapic Points 1184
new Buffer(number)            // Old
Buffer.alloc(number)          // New
 new Buffer(string)            // Old
Buffer.from(string)           // New

 new Buffer(string, encoding)  // Old
Buffer.from(string, encoding) // New

 new Buffer(...arguments)      // Old
Buffer.from(...arguments)     // New

Notez que Buffer.alloc () est également plus rapide sur les versions actuelles de Node.js que le nouveau Buffer (size) .fill (0), ce dont vous auriez autrement besoin pour garantir un remplissage nul.

16voto

Vibhor Dube Points 414
var userPasswordString = new Buffer(baseAuth, 'base64').toString('ascii');

Changez cette ligne de votre code à ceci -

 var userPasswordString = Buffer.from(baseAuth, 'base64').toString('ascii');

ou dans mon cas, j'ai donné l'encodage dans l'ordre inverse

 var userPasswordString = Buffer.from(baseAuth, 'utf-8').toString('base64');

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X