Detecção de vulnerabilidades, proteção do seu código contra todos os tipos de ataques cibernéticos e prevenção de vazamentos de memória são as funções mais essenciais de um programador. Essa detecção e previsão de vulnerabilidades residentes no código é muito difícil e também um processo demorado. No entanto, existem várias abordagens pelas quais a detecção manual junto com o processo de proteção do aplicativo podem ser feitas no Nodejs.
Este artigo explicará as abordagens para realizar a detecção manual com salvaguardas no Nodejs, abordando as seções abaixo:
-
- Uso do limitador de taxa
- Uso de TLS/SSL para transmissão de dados
- Saídas de escape
Como realizar detecção manual com salvaguardas em Node.js
A detecção manual é realizada revisando o código várias vezes para identificar possíveis problemas no código Node.js. Os possíveis problemas são recuperados procurando erros de sintaxe, erros lógicos e assim por diante. O uso de ' depurador ' e ' linters ”Também pode ser utilizado para identificar possíveis ameaças ou erros residentes no programa Node.js.
Existem vários métodos pelos quais o código pode ser protegido de todos os tipos de threads em potencial, ao mesmo tempo que aumenta a vida útil do seu código. Esses métodos estão listados abaixo:
Método 1: proteja o programa Node.js utilizando o limitador de taxa
Para evitar que seu aplicativo sofra ataques de negação de serviço e para melhorar o desempenho do seu aplicativo, evitando muitas solicitações. A implementação prática é mostrada abaixo:
const expresso = requer ( 'expressar' ) ;
taxa constLim = requer ( 'limite de taxa expressa' ) ;
const safeApp = expresso ( ) ;
// Defina um middleware de limitação de taxa
limitação const = rateLim ( {
janelaMs: 60 * 1000 ,
máximo: 100 , // Necessidade máxima por minuto
mensagem: 'Desculpe! O limite de taxa foi excedido' ,
} ) ;
// Aplique o middleware limitador de taxa
safeApp.use ( limitante ) ;
// Definir uma rota e um manipulador de resposta
safeApp.get ( '/' , ( solicitação, resposta ) = > {
resposta.enviar ( 'Olá comunidade Linuxhint!' ) ;
} ) ;
// Inicializando o servidor Express
const localPort=process.env.PORT || 3.000 ;
safeApp.listen ( localPort, ( ) = > {
console.log ( ` O servidor foi iniciado no número da porta: ${localPort}
No código acima:
-
- Primeiro, importe o “ expressar ' e ' limite de taxa expressa ”pacotes no principal“ js ' arquivo. Inicialize o “ expressar() ”aplicativo e atribua um nome a ele“ aplicativo seguro ”.
- A seguir, defina um middleware limitador de taxa passando os valores personalizados para “ janelasMs ',' máx. ', e ' mensagem ”propriedades no“ limite de taxa expressa ' pacote.
- Agora, aplique este limitador de taxa sobre o aplicativo expresso utilizando o “ usar() ”Método.
- Em seguida, use o “ pegar() ”Método para enviar uma mensagem aleatória como solicitação pelo servidor.
- Finalmente, defina o número da porta usando o “ env.PORT ”Propriedade e faça o aplicativo expresso ouvir o número da porta especificada.
Método 2: Proteja o programa Node.js utilizando TLS/SSL para transmissão de dados
TLS/SSL é uma camada de soquete segura que criptografa os dados transmitidos entre o servidor e o cliente. Isso protege dados confidenciais, como números de cartão de crédito, de serem interceptados por invasores e também ajuda você a atender aos requisitos de conformidade:
const fs = requer ( 'fs' ) ;
const expresso = requer ( 'expressar' ) ;
const httpsObj = requer ( 'https' ) ;
const safeApp = expresso ( ) ;
opções constantes = {
chave: fs.readFileSync ( 'chave.pem' ) ,
certificado: fs.readFileSync ( 'cert.pem' ) ,
} ;
const settingServer = httpsObj.createServer ( opções, aplicativo seguro ) ;
safesafeApp.get ( '/' , ( solicitação, resposta ) = > {
resposta.enviar ( 'Olá comunidade Linuxhint!' ) ;
} ) ;
configuraçãoServer.listen ( 8.000 ) ;
A descrição do código acima:
-
- Inicialmente, importe o Node.js necessário “ fs ',' expressar ', e ' https ”Dependências em seu projeto e inicialize o aplicativo “express” com o nome de “ aplicativo seguro ”.
- Agora, crie um “ opções ”lista e passa os arquivos para chave privada e certificado“ chave ' e ' certificado ”propriedades. Os arquivos podem ser feitos usando o “ abressl ”Comando e esses arquivos ajudam a proteger as conexões.
- Finalmente, crie um servidor invocando o “ criarServidor() ”Método e passe o“ opções ”array como o primeiro parâmetro e express app como o segundo.
- Para aplicar a autenticação TSL/SSL na aplicação, envie ou receba a solicitação usando o “ pegar() ”Método de acordo com os requisitos.
Método 3: Proteja o programa Node.js utilizando as saídas de escape
Para evitar que seu aplicativo Node.js execute scripts entre sites “ XSS ”Ataques, a técnica mais comum e popular é o escape de caracteres especiais da saída. Os caracteres especiais são convertidos para o formato HTML para evitar ataques XSS e a conversão é feita através do “ escape-html ”objeto de pacote:
const esObj = requer ( 'escape-html' ) ;const dummyStr = '' ;
const modStr = escObj ( manequimStr ) ;
console.log ( contadorStr ) ;
A descrição do código acima é a seguinte:
-
- Primeiro, o “ escape-html ”pacote é importado para o principal“ js ”Arquivo e seu objeto ou instância é armazenado em um“ esobj ' variável.
- Em seguida, uma linha aleatória de código contendo caracteres especiais é armazenada em um “ manequimStr ' variável.
- Depois disso, passe o “ manequimStr ”variável dentro de“ esobj ”parênteses para conversão de código em formato HTML puro.
- O resultado é armazenado em uma variável “ contadorStr ”que é então exibido no console.
A saída do código acima mostra que os caracteres especiais que contêm a string fornecida agora são convertidos no formato de codificação HTML:
Trata-se de realizar detecção manual com salvaguardas no Nodejs.
Conclusão
Para realizar a detecção manual, revise seu código várias vezes em busca de qualquer tipo de sintaxe ou erros lógicos e execute vários testes no código. Para proteger seu programa Node.js de todos os tipos de ataques cibernéticos ou para evitar vazamento de dados, use o “ Limitador de taxa ',' TLS/SSL para transmissão de dados ', e ' Saídas de escape ”técnicas. Este guia ilustrou o procedimento de realização de detecção manual com salvaguardas em Node.js.