* translated lint rules * translated limit requests * translated secret management * translated ORM ODM usage * translated secure server * translated commum security best pratices * translated secure headers * translated dependency security * translated bcrypt passwords * translated escape output * translated validation * translated expire jwt * translated login rate limit * translated non root user * translated request payload size limit * translated avoid eval * translated regex * translated safe module loading * translated sandbox * translated child processes * translated hide errors * translated sessions * translated safe redirects * changed links to tranlated files & fixed a typo * translated ESlint and Prettier * translated native over util * translated refactoring * translated ci tools * translated 3 parts in name * translated monitoring * translated smart logging * translated delegate to proxy * translated lock dependencies * translated guard process * translated utilize cpu * translated create maintenance endpoint * translated apm products * translated production code * translated measure memory * translated frontend out * translated be stateless * translated detect vulnerabilities * translated assign transation ID * translated set NODE_ENV * translated LTS release * translated log rounting * translated break into components * translated create layers * translated wrap utilities * translated separate express * translated config guide * corrected typos and updated anchors * corrected files names
1.5 KiB
Oculte detalhes de erros dos usuários
Explicação em um Parágrafo
A exposição dos detalhes de erros da aplicação ao cliente em produção deve ser evitada devido ao risco de expor detalhes confidenciais do aplicativo, como caminhos de arquivo do servidor, módulos de terceiros em uso e outros fluxos de trabalho internos da aplicação que poderiam ser explorados por um invasor.
O Express vem com um manipulador de erros embutido, que cuida de quaisquer erros que possam ser encontrados na aplicação. Essa função de middleware padrão de tratamento de erros é adicionada no final do stack de funções do middleware.
Se você passar um erro para next() e você não o manipular em um manipulador de erro personalizado, ele será tratado pelo manipulador de erros Express; o erro será gravado no cliente com o rastreamento de stack. Esse comportamento será verdadeiro quando NODE_ENV for definido como development, no entanto, quando NODE_ENV for definido como production, o rastreio de pilha não será gravado, apenas o código de resposta HTTP.
Exemplo de código: Manipulador de erros do express
// manipulador de erros em produção
// nenhum rastreamento de stack vazou para o usuário
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: {}
});
});