La seguridad es un tema de suma importancia en la actualidad, si has llegado a este práctico tutorial seguramente sea porque te preocupa el nivel de seguridad y fiabilidad de tus programas. Sigue leyendo para que aprendas a aumentar la seguridad de tu propia AppConcepto de APP¿Qué es una APP?Una App es todo aquel programa que se ejecuta desde una interfaz teléfono celular, es decir, desde un móvil o una tablet. Consiste en la herramienta principal para cualquier usuario que tenga un teléfono teléfono celular, de todo el software que se mueve en tiendas digitales como Google Play Store o la App Store y que tanto se adentra en cualquier terminal moderno.Es un concepto plus.

Let's get started and secure our app with Node.js using proper coding, tools, and trading habits!

1. Applying secure encryption forms

  • First: avoid using eval

You may not know this information, but eval it can open your application for code injection attacks. Try not to use it, but if you have to, never inject non-validated user input into eval.

Eval isn't the only one to avoid for this: deep down, each of the following expressions uses eval:

setInterval (String, 2)
setTimeout (String, 2)
new Function (String)

  • Second: try to always use the instruction 'use strict'

With 'use strict' tu puedes optar por usar una «variable» restringida de JavaScriptJavaScript es un lenguaje de programación que funciona en el lado del cliente y con el que las webs pueden ser más funcionales. Incorporación en código HTML El código JavaScript puede ser incrustado en las páginas HTML, para que adquieran funcionalidad. Existen varias opciones. Puede estar entre las etiquetas <SCRIPT> y </SCRIPT>, puede estar contenido en un archivo externo, puede ser un parámetro de las etiquetas HTML, y puede estar plus. Esta variable, elimina algunos errores silenciosos y los desecha todo el tiempo.

'use strict' delete Object.prototype // TypeError var obj = {a: 1, a: 2} // syntax error
  • Third: try to handle mistakes with extreme care

During different error scenarios, your application can lose sensitive data about the underlying infrastructure, such as: X-Powered-By: Express.

Stack traces are not treated as vulnerabilities by themselves, but they often reveal information that may be of interest to an attacker. Providing debugging information as a result of operations that fail is considered bad practice. You should always register them, but never show them to users.

  • Fourth: Try to make a static analysis from your database

Static analysis of your application's database code can detect many errors. For that we suggest using ESLint with the standard code style.

Running your services in production safely

Using the proper code style is not enough to efficiently protect Node.js applications, you also need to be careful how you run your services in production.

  • Fifth: avoid running your processes with superuser rights

Unfortunately, we see that this case happens a lot: developers are running their Node.js application with rights to Super useras they want it to be heard on port 80 or 443.

Esto está muy mal. En el caso de un error o bugLos bugs son errores en los programas de PC que hacen que el software no funcione como debería. Por lo general, los bugs son causados por un error en el código que usualmente sólo es descubierto por los usuarios cuando usan el programa. Información general El nombre bug viene de la época en que se desarrollaron los primeros ordenadores. Las enormes máquinas calculadoras trabajaban con grandes circuitos, relés y items plus, su proceso puede hacer caer todo el sistema, ya que tiene credenciales para hacer cualquier cosa.

En lugar de esto, lo que puedes hacer es configurar un serverLos servidores son ordenadores centrales y potentes dentro del campo de la tecnología de la información que procesan y proporcionan software y archivos en una red. Desde el punto de vista de un cliente, varios ordenadores en una red pueden ponerse en contacto con el servidor central para conseguir la información solicitada. En la arquitectura cliente-servidor, el servidor puede ser un software que proporciona un servicio y se ejecuta en plus o proxy HTTPEl HTTP (Hyper Text Transfer Protocol) es un protocolo que se usa para transmitir datos en redes. HTTP es un estándar técnico generalmente aceptado que establece cómo un cliente web se comunica con un servidor para que los datos solicitados por el cliente puedan ser cargados y mostrados. Información general Junto con el URL y el HTML, HTTP es uno de los conceptos más importantes de Internet (www). Fue desarrollado plus para reenviar las solicitudes. Puede ser nginx o Apache  Concepto de Apache ¿Qué es y qué hace Apache? Apache es un software especializado en ofrecer servicios de servidor web. Es versátil, ligero y muy útil, al mismo tiempo de ser absolutamente sin costes y de código abierto. Su popularidad es tal que, hoy en día, cerca del 50% de las páginas web de todas partes se ejecutan en un servidor de este tipo. Aún cuando se le conoce plus.

  • Sixth: configure the headers Required HTTP

There are some security-related HTTP headers that your site should set. These headers are:

  • Strict-Transport-Security: este refuerza las conexiones seguras (HTTP sobre SSLLa encriptación SSL (Secure Socket Layer) proporciona una conexión segura entre el cliente y el servidor. Consiste en un protocolo de Internet que permite encriptar datos sensibles (como información de pago, datos de tarjetas de crédito) y hacerlos ilegibles a terceros. Al mismo tiempo, un certificado confirma que el servidor es fiable. En este momento, además se le llama TLS (Transport Layer Security). Relevancia SSL es un método de cifrado plus/TLS) al servidor.
  • X-Frame-Options: provides you with clickjacking protection
  • X-XSS-Protection: puede habilitar el filtro XSS (cross-site scripting) integrado en los browsersConcepto de Navegadores¿Qué son los Navegadores?Los Navegadores son herramientas informáticas que utilizamos para, normalmente, navegar por Internet y visitar cualquier página web, al mismo tiempo de para hacer otras tareas como ver documentos, observar vídeos o reproducir contenido multimedia de cualquier tipo. Son un tipo de software sencillamente usual y bastante utilizado hoy en día.Insistimos en que es algo que se utiliza con mucha frecuencia, puesto que moverse por Internet plus web más recientes.
  • X-Content-Type-Options: este evita que los navegadores olfateen una respuesta alejada del type of contentEl tipo de contenido se refiere al contenido de un archivo que se transfiere mediante de HTTP y se clasifica según una estructura de dos partes. Esta clasificación está estandarizada y publicada por la IANA (Internet Assigned Numbers Authority, que supervisa la asignación global de direcciones IP). Una definición alternativo es MIME. En esta circunstancia, el contenido de los datos se especifica según el MIME (Multipurpose Internet Mail Extensions). El plus declarado.
  • La política de seguridad de contentsEl contenido puede ser muy difícil de definir con precisión. Es una definición que se refiere a las declaraciones contenidas en un documento o publicación de cualquier tipo y puede incluir las tecnologías de la información y la comunicación. Esto cubre todos los tipos de medios como imágenes y texto. A parte de esto, en el campo de la optimización de motores de búsqueda, los términos duplicar contenido, contenido único, plus previene una amplia gama de ataques, incluyendo secuencias de comandos entre sitios y otras inyecciones entre sitios.

In Node.js it is easy to configure them using the Helmet module:

var express = require ('express') var helmet = require ('helmet') var app = express () app.use (helmet ())

Helmet is also available for Koa: koa-helmet.

  • Seventh: carry out a proper session management

La siguiente lista de marcas debe ser establecida para cada cookieUna cookie es un registro que es almacenado por un servidor web en el disco duro del usuario. El archivo recibido es una combinación de caracteres formada por números y letras, que asigna una cierta identidad al usuario (cliente). No podrán exceder un tamaño máximo de 4 KB y contendrán, por ejemplo, información sobre la extensión de la visita o sobre lo que el usuario haya pulsado. Cuando el cliente plus:

  1. secure:  East attributeAtributo es una definición que se usa en varios campos de IT. Generalmente, un atributo se usa para describir un fichero o un campo de datos con más detalle. En la programación orientada a objetos, los atributos son una propiedad o característica que se puede asignar a un objeto (elemento). A través el uso de atributos se pueden asignar valores específicos a ciertos items. Áreas de aplicación Las tres áreas plus le dice al browserUn navegador (además: browser) es una herramienta informática que te permite ver documentos y datos y navegar por la red. Los navegadores pueden mostrar distintos tipos de recursos de información; principalmente documentos HTML, a pesar de todo, además son posibles otros tipos de archivos y contenido multimedia, como PDF, JPEG, MPEG, GIF o el lenguaje de meta marcado. A través el uso de complementos especiales y la configuración respectivo, los plus que sólo envíe la cookie si la petición se está enviando a través de HTTPSHTTPS (protocolo de Transferencia de Hiper-Texto) es un protocolo que permite determinar una conexión segura entre el servidor y el cliente, que no puede ser interceptada por personas no autorizadas. En resumidas cuentas, es la versión segura de el http (Hyper Text Transfer Protocol) Cómo funciona Una conexión HTTP estándar en Internet puede ser fácilmente secuestrada por partes no autorizadas. El propósito de una conexión HTTPS es evitar esto: encriptar plus.
  2. HttpOnlyly: este atributo se utiliza para ayudar a prevenir ataques tales como scriptsConcepto de Scripts¿Qué son los Scripts?Los Scripts son fragmentos de código que se usan para dar forma a herramientas tanto en Internet como en el sector de la informática en general. Son una parte crucial del software, puesto que se trata exactamente del código que conforma a una aplicación en su totalidad o a una de sus funciones, como además el que puedes hallar explorando cómo está hecha una web.Desde plus cruzados, ya que no permite el acceso a la cookie a través de JavaScript.
  • Eighth: Establishment of cookie application environment

  1. domain: este atributo se utiliza para comparar con el domainUn dominio es una sección de Internet con direcciones que comparten un sufijo común o están bajo el control de una organización o individuo en particular. Está organizado jerárquicamente. Tanto los objetos físicos como los virtuales pueden ser direccionados con el nombre de dominio. Estos objetos pueden ser webs, ordenadores en red o servicios, como impresoras, faxes o servidores de correo. Cada objeto está referenciado por una dirección IP única, plus del servidor en el que se está solicitando la UrlEl URL (Localizador Uniforme de Recursos), es una dirección definida que apunta a la posición de un archivo en un servidor y lo recupera. Las URL se introducen en un navegador web para ingresar a documentos en la web o se incrustan como hipervínculos dentro de un documento. Se puede usar un Permalink para que una URL esté disponible de forma permanente. Componentes de una URL • prefijo de protocolo plus. Si el dominio coincide o es un subdomainConcepto de Subdominio¿Qué es un Subdominio?Un Subdominio es una extensión que se añade al nombre de un dominio para organizar las distintos secciones que pueda tener su web, aún cuando funcionando de forma totalmente independiente a esta. Por lo general, generalmente son palabras que lo preceden y que se separan de él utilizando un punto para remarcar tanto su independencia como la idea de que son algo desligado del contenido plus, el atributo de ruta se comprobará a continuación.
  2. path: In addition to the domain, you can specify the URL path for which the cookie is valid. If the domain and path match, then the cookie will be sent on request.
  3. expires: This attribute is used to set persistent cookies since the cookie does not expire until the set date is exceeded.

In Node.js you can easily create this cookie using the cookie package. Again, this is pretty low so you'll probably end up using a wrap, like the cookie session.

var cookieSession = require ('cookie-session') var express = require ('express') var app = express () app.use (cookieSession ({name: 'session', keys: [process.env.COOKIE_KEY1, process. env.COOKIE_KEY2]})) app.use (function (req, res, next) {var n = req.session.views || 0 req.session.views = n ++ res.end (n + 'views')}) app.listen (3000)

Consider the tools to use

Congratulations, you are almost at the end of the article! If you've followed this tutorial and performed the above steps thoroughly and to the letter, you only have one area to cover in terms of Node.js security. Let's dive into using the right tools to look for module vulnerabilities!

  • Ninth: search vulnerabilities with Retire.js

The target¿Qué es un objetivo?En marketing, un objetivo es el resultado que se pretende alcanzar en un periodo de tiempo, a través el uso de los recursos disponibles. Por tanto, se debe formular de una forma clara y hace falta que sea accesible y medible. plus from Remove.js is to help you detect the use of versions of modules with known vulnerabilities.

Just install with:

npm install -g remove

After that, run it with the command withdraw will look for vulnerabilities in the directory node_modules. (Also note that remove.js not only works with node modules but also with front-end libraries).

  • Tenth: audit your modules with the Node CLI security platform

nsp is the main command line interface for the Node security platform. Allows you to audit a file package.json or npm-shrinkwrap.json contra la APIConcepto de API¿Qué es una API?Una API, siglas de Application Programming Interface o Interfaz de Programación de Apps, es un recopilatorio de código que se puede emplear para que varias apps se comuniquen entre ellas. Es algo que realiza una tarea equivalente a la interfaz de usuario al momento de promover la interacción entre persona y programa, solo que aplicado única y exclusivamente dentro del entorno del software.Aún cuando suene plus del NSP para comprobar si hay módulos vulnerables.

npm install nsp --global # From inside your project directory nsp check

Node.js security isn't a big deal after all, right? I hope that you have found these rules useful and necessary to secure your Node.js applications, and that you follow them in the future as security is part of your job. Congratulations!