{"id":95737,"date":"2022-10-09T13:36:00","date_gmt":"2022-10-09T11:36:00","guid":{"rendered":"https:\/\/rmarketingdigital.com\/javascript\/tutorial-de-seguridad-con-node-js\/"},"modified":"2020-12-07T18:05:01","modified_gmt":"2020-12-07T21:05:01","slug":"tutorial-de-seguridad-con-node-js","status":"publish","type":"post","link":"https:\/\/rmarketingdigital.com\/de\/javascript\/tutorial-de-seguridad-con-node-js\/","title":{"rendered":"Sicherheits-Tutorial mit Node.js."},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_86 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contenidos<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/rmarketingdigital.com\/de\/javascript\/tutorial-de-seguridad-con-node-js\/#1-Aplicando-formas-de-codificacion-seguras\" >1. Aplicando formas de codificaci\u00f3n seguras<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/rmarketingdigital.com\/de\/javascript\/tutorial-de-seguridad-con-node-js\/#Primero-evitar-usar-eval\" >Primero: evitar usar eval<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/rmarketingdigital.com\/de\/javascript\/tutorial-de-seguridad-con-node-js\/#Segundo-trata-de-usar-siempre-la-instrccion-%E2%80%98use-strict\" >Segundo: trata de usar siempre la instrcci\u00f3n\u00a0\u2018use strict\u2019<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/rmarketingdigital.com\/de\/javascript\/tutorial-de-seguridad-con-node-js\/#Tercero-tratar-de-manejar-los-errores-con-extremo-cuidado\" >Tercero: tratar de manejar los errores con extremo cuidado<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/rmarketingdigital.com\/de\/javascript\/tutorial-de-seguridad-con-node-js\/#Cuarto-Intenta-hacer-un-analisis-estatico-de-tu-base-de-datos\" >Cuarto: Intenta hacer un an\u00e1lisis est\u00e1tico de tu base de datos<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/rmarketingdigital.com\/de\/javascript\/tutorial-de-seguridad-con-node-js\/#Ejecucion-de-sus-servicios-en-produccion-de-forma-segura\" >Ejecuci\u00f3n de sus servicios en producci\u00f3n de forma segura<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/rmarketingdigital.com\/de\/javascript\/tutorial-de-seguridad-con-node-js\/#Quinto-evita-ejecutar-tus-procesos-con-derechos-de-superusuario\" >Quinto: evita ejecutar tus procesos con derechos de superusuario<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/rmarketingdigital.com\/de\/javascript\/tutorial-de-seguridad-con-node-js\/#Sexto-configurar-las-cabeceras-HTTP-obligatorias\" >Sexto: configurar las cabeceras HTTP obligatorias<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/rmarketingdigital.com\/de\/javascript\/tutorial-de-seguridad-con-node-js\/#Septimo-llevar-a-cabo-una-gestion-adecuada-de-las-sesiones\" >S\u00e9ptimo: llevar a cabo una gesti\u00f3n adecuada de las sesiones<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/rmarketingdigital.com\/de\/javascript\/tutorial-de-seguridad-con-node-js\/#Octavo-Establecimiento-del-ambiente-de-aplicacion-de-las-cookies\" >Octavo: Establecimiento del ambiente de aplicaci\u00f3n de las cookies<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/rmarketingdigital.com\/de\/javascript\/tutorial-de-seguridad-con-node-js\/#Considera-las-herramientas-a-utilizar\" >Considera las herramientas a utilizar<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/rmarketingdigital.com\/de\/javascript\/tutorial-de-seguridad-con-node-js\/#Noveno-busca-vulnerabilidades-con-Retirejs\" >Noveno: busca\u00a0vulnerabilidades con Retire.js<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/rmarketingdigital.com\/de\/javascript\/tutorial-de-seguridad-con-node-js\/#Decimo-audita-tus-modulos-con-la-plataforma-de-seguridad-de-Node-CLI\" >D\u00e9cimo: audita tus m\u00f3dulos con la plataforma de seguridad de Node CLI<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<div itemprop=\"articleBody\">\n<p>La seguridad es un tema de suma importancia en la actualidad, si has llegado a este pr\u00e1ctico 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 App.<span id=\"more-102\"\/><\/p>\n<p>\u00a1Comencemos y aseguremos nuestra aplicaci\u00f3n con Node.js mediante codificaci\u00f3n, herramientas y h\u00e1bitos de operaci\u00f3n adecuadas!<\/p>\n<h2><span class=\"ez-toc-section\" id=\"1-Aplicando-formas-de-codificacion-seguras\"><\/span>1. Aplicando formas de codificaci\u00f3n seguras<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>\n<h3><span class=\"ez-toc-section\" id=\"Primero-evitar-usar-eval\"><\/span>Primero: evitar usar <strong>eval<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/li>\n<\/ul>\n<p>Quiz\u00e1 no sepas esta informaci\u00f3n, pero <code>eval<\/code> puede abrir tu aplicaci\u00f3n para ataques de inyecci\u00f3n de c\u00f3digo. Trata de no usarlo, pero si tienes que hacerlo, nunca inyectes entradas de usuario no validadas en <code>eval<\/code>.<\/p>\n<p>Eval no es el \u00fanico que debes evitar para esto: en el fondo, cada una de las siguientes expresiones usa eval:<\/p>\n<p><code data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">setInterval(String, 2)<\/code><br \/><code data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">setTimeout(String, 2)<\/code><br \/><code data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">new Function(String)<\/code><\/p>\n<ul>\n<li>\n<h3><span class=\"ez-toc-section\" id=\"Segundo-trata-de-usar-siempre-la-instrccion-%E2%80%98use-strict\"><\/span>Segundo: trata de usar siempre la instrcci\u00f3n\u00a0<strong>\u2018use strict\u2019<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/li>\n<\/ul>\n<p>Con <strong>\u2018use strict\u2019\u00a0<\/strong>tu puedes optar por usar una \u00abvariable\u00bb restringida de JavaScript. Esta variable, elimina algunos errores silenciosos y los desecha todo el tiempo.<\/p>\n<pre data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">&#13;\n'use strict'&#13;\ndelete Object.prototype&#13;\n\/\/ TypeError&#13;\nvar obj = {&#13;\na: 1,&#13;\na: 2&#13;\n}&#13;\n\/\/ error de sintaxis&#13;\n<\/pre>\n<ul>\n<li>\n<h3><span class=\"ez-toc-section\" id=\"Tercero-tratar-de-manejar-los-errores-con-extremo-cuidado\"><\/span>Tercero: tratar de manejar los errores con<strong> extremo cuidado<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/li>\n<\/ul>\n<p>Durante diferentes escenarios de error, tu aplicaci\u00f3n puede perder datos sensibles sobre la infraestructura subyacente, como: <code>X-Powered-By:Express<\/code>.<\/p>\n<p>Los rastros de pila no se tratan como vulnerabilidades por s\u00ed mismos, pero a menudo revelan informaci\u00f3n que puede ser interesante para un atacante. Proporcionar informaci\u00f3n de depuraci\u00f3n como resultado de operaciones que generan errores se considera una mala pr\u00e1ctica. Siempre debe registrarlos, pero nunca mostrarlos a los usuarios.<\/p>\n<ul>\n<li>\n<h3><span class=\"ez-toc-section\" id=\"Cuarto-Intenta-hacer-un-analisis-estatico-de-tu-base-de-datos\"><\/span>Cuarto: Intenta hacer un <strong>an\u00e1lisis est\u00e1tico<\/strong> de tu base de datos<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/li>\n<\/ul>\n<p>El an\u00e1lisis est\u00e1tico del c\u00f3digo de base de datos de tu aplicaci\u00f3n puede detectar muchos errores. Para eso sugerimos usar <strong>ESLint<\/strong> con el estilo de c\u00f3digo est\u00e1ndar .<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Ejecucion-de-sus-servicios-en-produccion-de-forma-segura\"><\/span>Ejecuci\u00f3n de sus servicios en producci\u00f3n de forma segura<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>El uso del estilo de c\u00f3digo adecuado no es suficiente para proteger de manera eficiente las aplicaciones Node.js, tambi\u00e9n debes tener cuidado de c\u00f3mo ejecutas tus servicios en producci\u00f3n.<\/p>\n<ul>\n<li>\n<h3><span class=\"ez-toc-section\" id=\"Quinto-evita-ejecutar-tus-procesos-con-derechos-de-superusuario\"><\/span>Quinto: <strong>evita ejecutar tus procesos con derechos de superusuario<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/li>\n<\/ul>\n<p>Lamentablemente, vemos que este caso pasa mucho: los desarrolladores est\u00e1n ejecutando su aplicaci\u00f3n Node.js con derechos de <strong>super usuario<\/strong>, ya que quieren que se escuche en el puerto 80 o 443.<\/p>\n<p>Esto est\u00e1 muy mal. En el caso de un error o bug, su proceso puede hacer caer todo el sistema, ya que tiene credenciales para hacer cualquier cosa.<\/p>\n<p>En lugar de esto, lo que puedes hacer es configurar un servidor o proxy HTTP para reenviar las solicitudes. Puede ser nginx o Apache.<\/p>\n<ul>\n<li>\n<h3><span class=\"ez-toc-section\" id=\"Sexto-configurar-las-cabeceras-HTTP-obligatorias\"><\/span>Sexto: configurar las cabeceras <strong>HTTP obligatorias<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/li>\n<\/ul>\n<p>Hay algunas cabeceras HTTP relacionadas con la seguridad que su sitio deber\u00eda establecer. Estas cabeceras lo son:<\/p>\n<ul>\n<li><strong>Strict-Transport-Security:<\/strong>\u00a0este refuerza las conexiones seguras (HTTP sobre SSL\/TLS) al servidor.<\/li>\n<li><strong>X-Frame-Options:<\/strong>\u00a0te proporciona protecci\u00f3n contra el clickjacking<\/li>\n<li><strong>X-XSS-Protection:<\/strong>\u00a0puede habilitar el filtro XSS (cross-site scripting) integrado en los navegadores web m\u00e1s recientes.<\/li>\n<li><strong>X-Content-Type-Options:<\/strong>\u00a0este evita que los navegadores olfateen una respuesta alejada del tipo de contenido declarado.<\/li>\n<li>La pol\u00edtica de seguridad de contenido previene una amplia gama de ataques, incluyendo secuencias de comandos entre sitios y otras inyecciones entre sitios.<\/li>\n<\/ul>\n<p>En Node.js es f\u00e1cil configurarlos usando el m\u00f3dulo Helmet:<\/p>\n<pre data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">&#13;\n&#13;\nvar express = require('express')&#13;\nvar helmet = require('helmet')&#13;\n&#13;\nvar app = express()&#13;\n&#13;\napp.use(helmet())&#13;\n<\/pre>\n<p>Helmet est\u00e1 disponible tambi\u00e9n para Koa: <strong>koa-helmet.<\/strong><\/p>\n<ul>\n<li>\n<h3><span class=\"ez-toc-section\" id=\"Septimo-llevar-a-cabo-una-gestion-adecuada-de-las-sesiones\"><\/span>S\u00e9ptimo: llevar a cabo una <strong>gesti\u00f3n adecuada de las sesiones<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/li>\n<\/ul>\n<p>La siguiente lista de marcas debe ser establecida para cada cookie:<\/p>\n<ol>\n<li><strong>secure:<\/strong>\u00a0 este atributo le dice al navegador que s\u00f3lo env\u00ede la cookie si la petici\u00f3n se est\u00e1 enviando a trav\u00e9s de HTTPS.<\/li>\n<li><strong>HttpOnlyly<\/strong>: este atributo se utiliza para ayudar a prevenir ataques tales como scripts cruzados, ya que no permite el acceso a la cookie a trav\u00e9s de JavaScript.<\/li>\n<\/ol>\n<ul>\n<li>\n<h3><span class=\"ez-toc-section\" id=\"Octavo-Establecimiento-del-ambiente-de-aplicacion-de-las-cookies\"><\/span>Octavo: Establecimiento del <strong>ambiente de aplicaci\u00f3n de las cookies<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/li>\n<\/ul>\n<ol>\n<li><strong>domain:<\/strong> este atributo se utiliza para comparar con el dominio del servidor en el que se est\u00e1 solicitando la URL. Si el dominio coincide o es un subdominio, el atributo de ruta se comprobar\u00e1 a continuaci\u00f3n.<\/li>\n<li><strong>path:<\/strong> adem\u00e1s del dominio, se puede especificar la ruta URL para la que es v\u00e1lida la cookie. Si el dominio y la ruta coinciden, entonces la cookie se enviar\u00e1 en la solicitud.<\/li>\n<li><strong>expires:<\/strong> este atributo se usa para establecer cookies persistentes ya que la cookie no expira hasta que se excede la fecha establecida.<\/li>\n<\/ol>\n<p>En Node.js puede crear f\u00e1cilmente esta cookie utilizando el paquete de cookies. Una vez m\u00e1s, esto es bastante bajo por lo que probablemente terminar\u00e1 usando una envoltura, como la sesi\u00f3n de galletas.<\/p>\n<pre data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">&#13;\nvar cookieSession = require('cookie-session')&#13;\nvar express = require('express')&#13;\n&#13;\nvar app = express()&#13;\n&#13;\napp.use(cookieSession({&#13;\nname: 'session',&#13;\nkeys: [&#13;\nprocess.env.COOKIE_KEY1,&#13;\nprocess.env.COOKIE_KEY2&#13;\n]&#13;\n}))&#13;\n&#13;\napp.use(function (req, res, next) {&#13;\nvar n = req.session.views || 0&#13;\nreq.session.views = n++&#13;\nres.end(n + ' views')&#13;\n})&#13;\n&#13;\napp.listen(3000)&#13;\n<\/pre>\n<h4><span class=\"ez-toc-section\" id=\"Considera-las-herramientas-a-utilizar\"><\/span>Considera las herramientas a utilizar<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u00a1Felicidades, ya casi llegas al final del art\u00edculo! Si has seguido este tutorial y ha realizado los pasos anteriores a fondo y al pie de la letra, s\u00f3lo te queda un \u00e1rea por cubrir en cuanto a la seguridad de Node.js. \u00a1Sumerj\u00e1monos en el uso de las herramientas adecuadas para buscar vulnerabilidades de los m\u00f3dulos!<\/p>\n<ul>\n<li>\n<h3><span class=\"ez-toc-section\" id=\"Noveno-busca-vulnerabilidades-con-Retirejs\"><\/span>Noveno: busca\u00a0<strong>vulnerabilidades con Retire.js<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/li>\n<\/ul>\n<p>El objetivo de <strong>Retire.js<\/strong> es ayudarte a detectar el uso de versiones de m\u00f3dulos con vulnerabilidades conocidas.<\/p>\n<p>Simplemente instale con:<\/p>\n<p><code data-enlighter-language=\"php\" class=\"EnlighterJSRAW\"> npm install -g retire<\/code><\/p>\n<p>Despu\u00e9s de eso, ejecutarlo con el comando <strong>retire<\/strong> buscar\u00e1 vulnerabilidades en el directorio <strong>node_modules<\/strong>. (Tambi\u00e9n ten en cuenta que <strong>retire.js<\/strong> no s\u00f3lo funciona con m\u00f3dulos de nodos sino tambi\u00e9n con librer\u00edas frontales).<\/p>\n<ul>\n<li>\n<h3><span class=\"ez-toc-section\" id=\"Decimo-audita-tus-modulos-con-la-plataforma-de-seguridad-de-Node-CLI\"><\/span>D\u00e9cimo: audita tus m\u00f3dulos con la <strong>plataforma de seguridad de Node CLI<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/li>\n<\/ul>\n<p><code>nsp<\/code> es la interfaz principal de la l\u00ednea de comandos para la plataforma de seguridad de Node. Permite auditar un archivo <strong>package.json<\/strong> o <strong>npm-shrinkwrap.json<\/strong> contra la API del NSP para comprobar si hay m\u00f3dulos vulnerables.<\/p>\n<pre data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">&#13;\n&#13;\nnpm install nsp --global&#13;\n# Desde dentro del directorio de su proyecto&#13;\nnsp check&#13;\n<\/pre>\n<p>La seguridad de Node.js no es un gran problema despu\u00e9s de todo, \u00bfverdad? Espero que hayas encontrado \u00fatiles y necesarias estas reglas para asegurar tus aplicaciones Node.js, y que las sigas en el futuro ya que la seguridad es parte de tu trabajo. \u00a1Felicidades!<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>La seguridad es un tema de suma importancia en la actualidad, si has llegado a este pr\u00e1ctico tutorial seguramente sea porque te preocupa el nivel de seguridad y fiabilidad de&#8230;<\/p>","protected":false},"author":1,"featured_media":95738,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1374],"tags":[],"class_list":["post-95737","post","type-post","status-publish","format-standard","has-post-thumbnail","category-javascript"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.0 (Yoast SEO v28.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Tutorial de seguridad con Node.js - R Marketing Digital<\/title>\n<meta name=\"description\" content=\"La seguridad es un tema de suma importancia en la actualidad, si has llegado a este pr\u00e1ctico tutorial seguramente sea porque te preocupa el nivel de\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/rmarketingdigital.com\/de\/javascript\/tutorial-de-seguridad-con-node-js\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tutorial de seguridad con Node.js\" \/>\n<meta property=\"og:description\" content=\"La seguridad es un tema de suma importancia en la actualidad, si has llegado a este pr\u00e1ctico tutorial seguramente sea porque te preocupa el nivel de\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rmarketingdigital.com\/de\/javascript\/tutorial-de-seguridad-con-node-js\/\" \/>\n<meta property=\"og:site_name\" content=\"R Marketing Digital\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-09T11:36:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/12\/Node.-3875252.png\" \/>\n\t<meta property=\"og:image:width\" content=\"640\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"R Marketing Digital\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/tutorial-de-seguridad-con-node-js\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/tutorial-de-seguridad-con-node-js\\\/\"},\"author\":{\"name\":\"R Marketing Digital\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#\\\/schema\\\/person\\\/7c0d9782b2977b840b3740f00c69a73e\"},\"headline\":\"Tutorial de seguridad con Node.js\",\"datePublished\":\"2022-10-09T11:36:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/tutorial-de-seguridad-con-node-js\\\/\"},\"wordCount\":1005,\"image\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/tutorial-de-seguridad-con-node-js\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/rmarketingdigital.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/Node.-3875252.png\",\"articleSection\":[\"Javascript\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/tutorial-de-seguridad-con-node-js\\\/\",\"url\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/tutorial-de-seguridad-con-node-js\\\/\",\"name\":\"Tutorial de seguridad con Node.js - R Marketing Digital\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/tutorial-de-seguridad-con-node-js\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/tutorial-de-seguridad-con-node-js\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/rmarketingdigital.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/Node.-3875252.png\",\"datePublished\":\"2022-10-09T11:36:00+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#\\\/schema\\\/person\\\/7c0d9782b2977b840b3740f00c69a73e\"},\"description\":\"La seguridad es un tema de suma importancia en la actualidad, si has llegado a este pr\u00e1ctico tutorial seguramente sea porque te preocupa el nivel de\",\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/tutorial-de-seguridad-con-node-js\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/tutorial-de-seguridad-con-node-js\\\/#primaryimage\",\"url\":\"https:\\\/\\\/rmarketingdigital.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/Node.-3875252.png\",\"contentUrl\":\"https:\\\/\\\/rmarketingdigital.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/Node.-3875252.png\",\"width\":640,\"height\":400,\"caption\":\"node-3875252-2640716-png\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#website\",\"url\":\"https:\\\/\\\/rmarketingdigital.com\\\/\",\"name\":\"R Marketing Digital\",\"description\":\"Agencia SEO | Publicidad redes sociales | Community Management\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/rmarketingdigital.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#\\\/schema\\\/person\\\/7c0d9782b2977b840b3740f00c69a73e\",\"name\":\"R Marketing Digital\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g\",\"caption\":\"R Marketing Digital\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Sicherheits-Tutorial mit Node.js \u2013 R Marketing Digital","description":"Sicherheit ist heute ein Thema von gr\u00f6\u00dfter Bedeutung. Wenn Sie dieses praktische Tutorial erreicht haben, liegt dies wahrscheinlich daran, dass Sie sich Sorgen \u00fcber das Niveau von machen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/rmarketingdigital.com\/de\/javascript\/tutorial-de-seguridad-con-node-js\/","og_locale":"de_DE","og_type":"article","og_title":"Tutorial de seguridad con Node.js","og_description":"La seguridad es un tema de suma importancia en la actualidad, si has llegado a este pr\u00e1ctico tutorial seguramente sea porque te preocupa el nivel de","og_url":"https:\/\/rmarketingdigital.com\/de\/javascript\/tutorial-de-seguridad-con-node-js\/","og_site_name":"R Marketing Digital","article_published_time":"2022-10-09T11:36:00+00:00","og_image":[{"width":640,"height":400,"url":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/12\/Node.-3875252.png","type":"image\/png"}],"author":"R Marketing Digital","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rmarketingdigital.com\/javascript\/tutorial-de-seguridad-con-node-js\/#article","isPartOf":{"@id":"https:\/\/rmarketingdigital.com\/javascript\/tutorial-de-seguridad-con-node-js\/"},"author":{"name":"R Marketing Digital","@id":"https:\/\/rmarketingdigital.com\/#\/schema\/person\/7c0d9782b2977b840b3740f00c69a73e"},"headline":"Tutorial de seguridad con Node.js","datePublished":"2022-10-09T11:36:00+00:00","mainEntityOfPage":{"@id":"https:\/\/rmarketingdigital.com\/javascript\/tutorial-de-seguridad-con-node-js\/"},"wordCount":1005,"image":{"@id":"https:\/\/rmarketingdigital.com\/javascript\/tutorial-de-seguridad-con-node-js\/#primaryimage"},"thumbnailUrl":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/12\/Node.-3875252.png","articleSection":["Javascript"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/rmarketingdigital.com\/javascript\/tutorial-de-seguridad-con-node-js\/","url":"https:\/\/rmarketingdigital.com\/javascript\/tutorial-de-seguridad-con-node-js\/","name":"Sicherheits-Tutorial mit Node.js \u2013 R Marketing Digital","isPartOf":{"@id":"https:\/\/rmarketingdigital.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rmarketingdigital.com\/javascript\/tutorial-de-seguridad-con-node-js\/#primaryimage"},"image":{"@id":"https:\/\/rmarketingdigital.com\/javascript\/tutorial-de-seguridad-con-node-js\/#primaryimage"},"thumbnailUrl":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/12\/Node.-3875252.png","datePublished":"2022-10-09T11:36:00+00:00","author":{"@id":"https:\/\/rmarketingdigital.com\/#\/schema\/person\/7c0d9782b2977b840b3740f00c69a73e"},"description":"Sicherheit ist heute ein Thema von gr\u00f6\u00dfter Bedeutung. Wenn Sie dieses praktische Tutorial erreicht haben, liegt dies wahrscheinlich daran, dass Sie sich Sorgen \u00fcber das Niveau von machen","inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rmarketingdigital.com\/javascript\/tutorial-de-seguridad-con-node-js\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/rmarketingdigital.com\/javascript\/tutorial-de-seguridad-con-node-js\/#primaryimage","url":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/12\/Node.-3875252.png","contentUrl":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/12\/Node.-3875252.png","width":640,"height":400,"caption":"node-3875252-2640716-png"},{"@type":"WebSite","@id":"https:\/\/rmarketingdigital.com\/#website","url":"https:\/\/rmarketingdigital.com\/","name":"R Digitales Marketing","description":"SEO Agentur | Werbung f\u00fcr soziale Netzwerke | Community Management","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/rmarketingdigital.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/rmarketingdigital.com\/#\/schema\/person\/7c0d9782b2977b840b3740f00c69a73e","name":"R Digitales Marketing","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g","caption":"R Marketing Digital"}}]}},"_links":{"self":[{"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/posts\/95737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/comments?post=95737"}],"version-history":[{"count":0,"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/posts\/95737\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/media\/95738"}],"wp:attachment":[{"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/media?parent=95737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/categories?post=95737"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/tags?post=95737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}