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.
Lassen Sie uns loslegen und unsere App mit Node.js unter Verwendung der richtigen Codierung, Tools und Handelsgewohnheiten sichern!
1. Anwenden sicherer Verschlüsselungsformulare
-
Erstens: Vermeiden Sie die Verwendung eval
Möglicherweise kennen Sie diese Informationen nicht, aber eval Es kann Ihre Anwendung für Code-Injection-Angriffe öffnen. Versuchen Sie, es nicht zu verwenden, aber wenn Sie müssen, fügen Sie niemals nicht validierte Benutzereingaben ein eval.
Eval ist nicht der einzige, der dies vermeidet: Tief im Inneren verwendet jeder der folgenden Ausdrücke eval:
setInterval (String, 2)setTimeout (String, 2)neue Funktion (String)
-
Zweitens: Versuchen Sie immer, die Anweisung zu verwenden 'Verwenden Sie streng'
Mit 'Verwenden Sie streng' 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} // Syntaxfehler
-
Drittens: Versuchen Sie, mit Fehlern umzugehen extreme Sorgfalt
In verschiedenen Fehlerszenarien kann Ihre Anwendung vertrauliche Daten über die zugrunde liegende Infrastruktur verlieren, z. X-Powered-By: Express.
Stapelspuren werden nicht als Sicherheitslücken behandelt, sondern enthüllen häufig Informationen, die für einen Angreifer von Interesse sein können. Das Bereitstellen von Debugging-Informationen als Ergebnis fehlgeschlagener Vorgänge wird als schlechte Praxis angesehen. Sie sollten sie immer registrieren, aber niemals Benutzern zeigen.
-
Viertens: Versuchen Sie, eine zu machen statische Analyse aus Ihrer Datenbank
Die statische Analyse des Datenbankcodes Ihrer Anwendung kann viele Fehler erkennen. Dafür empfehlen wir die Verwendung ESLint mit dem Standard-Codestil.
Sicheres Ausführen Ihrer Dienste in der Produktion
Die Verwendung des richtigen Codestils reicht nicht aus, um Node.js-Anwendungen effizient zu schützen. Sie müssen auch vorsichtig sein, wie Sie Ihre Dienste in der Produktion ausführen.
-
Fünfte: Vermeiden Sie es, Ihre Prozesse mit Superuser-Rechten auszuführen
Leider sehen wir, dass dieser Fall häufig vorkommt: Entwickler führen ihre Node.js-Anwendung mit den Rechten für aus Super Userwie sie wollen, dass es auf Port 80 oder 443 gehört wird.
Esto está muy mal. En el caso de un error o FehlerLos 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.
-
Sechstens: Konfigurieren Sie die Header Erforderliches HTTP
Es gibt einige sicherheitsrelevante HTTP-Header, die Ihre Site festlegen sollte. Diese Überschriften sind:
- Strikte Transportsicherheit: 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-Optionen: bietet Ihnen Clickjacking-Schutz
- X-XSS-Schutz: puede habilitar el filtro XSS (cross-site scripting) integrado en los BrowserConcepto 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-Optionen: este evita que los navegadores olfateen una respuesta alejada del Art des InhaltsEl 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 InhaltEl 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 ist es einfach, sie mit dem Helmmodul zu konfigurieren:
var express = erfordern ('express') var helmet = erfordern ('helm') var app = express () app.use (helmet ())
Helm ist auch für Koa erhältlich: Koa-Helm.
-
Siebtens: a ordnungsgemäße Sitzungsverwaltung
La siguiente lista de marcas debe ser establecida para cada PlätzchenUna 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:
- sichern: Osten AttributAtributo 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.
- HttpOnlyly: este atributo se utiliza para ayudar a prevenir ataques tales como SkripteConcepto 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.
-
Achte: Gründung von Cookie-Anwendungsumgebung
- 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.
- Pfad: Zusätzlich zur Domain können Sie den URL-Pfad angeben, für den das Cookie gültig ist. Wenn die Domain und der Pfad übereinstimmen, wird das Cookie auf Anfrage gesendet.
- läuft ab: Dieses Attribut wird verwendet, um dauerhafte Cookies zu setzen, da das Cookie erst abläuft, wenn das festgelegte Datum überschritten wird.
In Node.js können Sie dieses Cookie einfach mit dem Cookie-Paket erstellen. Auch dies ist ziemlich niedrig, so dass Sie wahrscheinlich einen Wrap wie die Cookie-Sitzung verwenden werden.
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 (Funktion (req, res, next) {var n = req.session.views || 0 req.session.views = n ++ res.end (n + 'views') }) app.listen (3000)
Betrachten Sie die zu verwendenden Tools
Herzlichen Glückwunsch, Sie sind fast am Ende des Artikels! Wenn Sie diesem Tutorial gefolgt sind und die oben genannten Schritte gründlich und genau ausgeführt haben, müssen Sie nur einen Bereich in Bezug auf die Sicherheit von Node.j abdecken. Lassen Sie uns die richtigen Tools verwenden, um nach Modulschwachstellen zu suchen!
-
Neunte: Suche Schwachstellen mit Retire.js
Das Ziel¿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 von Remove.js soll Ihnen helfen, die Verwendung von Versionen von Modulen mit bekannten Schwachstellen zu erkennen.
Einfach installieren mit:
npm install -g entfernen
Führen Sie es danach mit dem Befehl aus abheben sucht im Verzeichnis nach Schwachstellen Knotenmodule. (Beachten Sie auch das remove.js funktioniert nicht nur mit Knotenmodulen, sondern auch mit Front-End-Bibliotheken).
-
Zehntens: Prüfen Sie Ihre Module mit dem Node CLI-Sicherheitsplattform
nsp ist die Hauptbefehlszeilenschnittstelle für die Node-Sicherheitsplattform. Ermöglicht das Überwachen einer Datei package.json oder 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 # Überprüfen Sie aus Ihrem Projektverzeichnis heraus die nsp-Prüfung
Die Sicherheit von Node.j ist doch keine große Sache, oder? Ich hoffe, dass Sie diese Regeln nützlich und notwendig gefunden haben, um Ihre Node.js-Anwendungen zu sichern, und dass Sie sie in Zukunft befolgen, da Sicherheit Teil Ihrer Arbeit ist. Herzliche Glückwünsche!





