{"id":5143,"date":"2022-11-30T14:27:53","date_gmt":"2022-11-30T12:27:53","guid":{"rendered":"https:\/\/www.omatech.com\/blog\/?p=5143"},"modified":"2023-08-28T16:54:19","modified_gmt":"2023-08-28T14:54:19","slug":"buenas-practicas-para-un-desarrollo-seguro","status":"publish","type":"post","link":"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/","title":{"rendered":"Buenas pr\u00e1cticas para un desarrollo seguro"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_77 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Tabla de contenidos<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69f630a254a18\" class=\"ez-toc-cssicon-toggle-label\"><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><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69f630a254a18\"  aria-label=\"Alternar\" \/><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:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#%C2%BFQue_es_un_desarrollo_seguro\" >\u00bfQu\u00e9 es un desarrollo seguro?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#%C2%BFPor_que_son_importantes_las_buenas_practicas_para_un_codigo_seguro\" >\u00bfPor qu\u00e9 son importantes las buenas pr\u00e1cticas para un c\u00f3digo seguro?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#Seguridad_desde_el_inicio_del_desarrollo\" >Seguridad desde el inicio del desarrollo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#Buenas_practicas_para_la_seguridad_del_codigo_segun_OWASP\" >Buenas pr\u00e1cticas para la seguridad del c\u00f3digo seg\u00fan OWASP<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#Validacion_de_entradas_y_codificacion_de_salidas\" >Validaci\u00f3n de entradas y codificaci\u00f3n de salidas<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#Gestion_de_autenticacion_y_contrasenas\" >Gesti\u00f3n de autenticaci\u00f3n y contrase\u00f1as<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#Administracion_de_sesiones\" >Administraci\u00f3n de sesiones<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#Control_de_acceso\" >Control de acceso<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#Practicas_criptograficas\" >Pr\u00e1cticas criptogr\u00e1ficas<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#Gestion_de_errores_y_logs\" >Gesti\u00f3n de errores y logs<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#Proteccion_de_datos\" >Protecci\u00f3n de datos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#Seguridad_en_las_comunicaciones\" >Seguridad en las comunicaciones<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#Configuracion_del_sistema\" >Configuraci\u00f3n del sistema<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#Seguridad_de_base_de_datos\" >Seguridad de base de datos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#Gestion_de_archivos_y_de_memoria\" >Gesti\u00f3n de archivos y de memoria<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#Practicas_generales_para_el_desarrollo_de_codigo\" >Pr\u00e1cticas generales para el desarrollo de c\u00f3digo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#Buenas_practicas_para_un_desarrollo_seguro_un_proceso_continuo\" >Buenas pr\u00e1cticas para un desarrollo seguro: un proceso continuo<\/a><\/li><\/ul><\/nav><\/div>\n<figure id=\"attachment_5143\" aria-describedby=\"caption-attachment-5143\" style=\"width: 770px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/Feed-Ciberseguridad.png\"><img decoding=\"async\" class=\"wp-image-5143 size-large\" title=\"Omatech sigue las buenas pr\u00e1cticas para un desarrollo seguro\" src=\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/Feed-Ciberseguridad.png\" alt=\"Omatech sigue las buenas pr\u00e1cticas para un desarrollo seguro\" width=\"770\" height=\"514\" \/><\/a><figcaption id=\"caption-attachment-5143\" class=\"wp-caption-text\">Omatech sigue las buenas pr\u00e1cticas para un desarrollo seguro.<\/figcaption><\/figure>\n<p>Las <strong>buenas pr\u00e1cticas para un desarrollo seguro<\/strong> evitan vulnerabilidades y previenen ataques. En este post hacemos un repaso a las <a href=\"https:\/\/owasp.org\/www-project-secure-coding-practices-quick-reference-guide\/\" target=\"_blank\" rel=\"noopener\"><strong>buenas pr\u00e1cticas de codificaci\u00f3n segura<\/strong><\/a> establecidas por <strong>OWASP<\/strong> (Open Web Application Security Project), una entidad internacional sin \u00e1nimo de lucro que trabaja para mejorar la seguridad del software.<\/p>\n<p>Los puntos d\u00e9biles de cualquier aplicaci\u00f3n en t\u00e9rminos de seguridad tienen que ver con la forma en que se ha escrito su c\u00f3digo. As\u00ed que, durante todo el proceso de desarrollo, desde que se comienza el proyecto hasta que se entrega la app al cliente, los programadores deben seguir determinadas pautas para garantizar la m\u00e1xima seguridad del c\u00f3digo.<\/p>\n<blockquote><p>Cuando los desarrolladores empiezan a construir una nueva aplicaci\u00f3n, deben tener en cuenta los requisitos del cliente y deben hacer un c\u00f3digo eficiente y seguro. En este art\u00edculo del blog explicamos por qu\u00e9 la seguridad del c\u00f3digo debe ser una prioridad absoluta y analizamos las buenas pr\u00e1cticas de seguridad<\/p><\/blockquote>\n<h2><a href=\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/codigo-seguro02.jpg\"><img decoding=\"async\" class=\"aligncenter wp-image-5152\" title=\"Un desarrollo seguro previene problemas de seguridad en una app o web\" src=\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/codigo-seguro02-300x200.jpg\" alt=\"Un desarrollo seguro previene problemas de seguridad en una app o web\" width=\"662\" height=\"441\" srcset=\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/codigo-seguro02-300x200.jpg 300w, https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/codigo-seguro02-1024x683.jpg 1024w, https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/codigo-seguro02-1536x1024.jpg 1536w, https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/codigo-seguro02-270x180.jpg 270w, https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/codigo-seguro02-370x245.jpg 370w\" sizes=\"(max-width: 662px) 100vw, 662px\" \/><\/a><\/h2>\n<h2><span class=\"ez-toc-section\" id=\"%C2%BFQue_es_un_desarrollo_seguro\"><\/span>\u00bfQu\u00e9 es un desarrollo seguro?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>El desarrollo seguro es la pr\u00e1ctica de escribir c\u00f3digo, en cualquier lenguaje de programaci\u00f3n, para prevenir problemas de seguridad en la app o sitio web. El objetivo es <strong>minimizar vulnerabilidades<\/strong>.<\/p>\n<p>Cualquier tarea de programaci\u00f3n se puede llevar a cabo de diferentes maneras, con distintos niveles de complejidad. Algunas soluciones son m\u00e1s seguras que otras. Los est\u00e1ndares o buenas pr\u00e1cticas de c\u00f3digo seguro gu\u00edan a los desarrolladores para que elijan el camino m\u00e1s seguro, aunque no sea el camino m\u00e1s r\u00e1pido o eficiente.<\/p>\n<p>Un ejemplo sencillo de entender es la recomendada <strong>denegaci\u00f3n por defecto<\/strong> a la hora de permitir accesos. Los desarrolladores que utilizan t\u00e9cnicas de desarrollo seguro crean c\u00f3digo que impide el acceso a recursos sensibles, a menos que el usuario pueda demostrar que tiene autorizaci\u00f3n. El trabajo extra de dar privilegios a los usuarios de forma personalizada \u2014por ejemplo, seg\u00fan si eres usuario registrado o no, o seg\u00fan el estatus dentro de la organizaci\u00f3n\u2014 es necesario. Solo as\u00ed garantizamos que la persona que accede a un dato tiene permiso para hacerlo en raz\u00f3n de su responsabilidad en la empresa.<\/p>\n<blockquote><p>Seg\u00fan OWASP, el objetivo del desarrollo seguro es \u00abmantener la confidencialidad, integridad y disponibilidad de los recursos de informaci\u00f3n con el fin de facilitar el \u00e9xito de las operaciones de las empresas\u00bb<\/p><\/blockquote>\n<h2><span class=\"ez-toc-section\" id=\"%C2%BFPor_que_son_importantes_las_buenas_practicas_para_un_codigo_seguro\"><\/span>\u00bfPor qu\u00e9 son importantes las buenas pr\u00e1cticas para un c\u00f3digo seguro?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Los incidentes de seguridad pueden tener graves consecuencias para negocios y personas. Un c\u00f3digo creado sin seguir buenas pr\u00e1cticas de seguridad puede provocar da\u00f1os econ\u00f3micos y robos de identidad, entre otros perjuicios. En sectores espec\u00edficos, como finanzas, salud, energ\u00eda y transporte, los efectos negativos pueden ser mayores.<\/p>\n<p>En los \u00faltimos a\u00f1os hemos visto que incluso grandes organizaciones sufren graves filtraciones de datos, a pesar de haber podido dedicar recursos para minimizar las vulnerabilidades.<\/p>\n<p>Las compa\u00f1\u00edas que se relacionan con sus clientes a trav\u00e9s de webs y aplicaciones m\u00f3viles pueden perder la confianza de estos por problemas de seguridad. Una de las peores cosas que pueden pasar es poner en peligro a los clientes. Por este motivo, consolidar buenas pr\u00e1cticas de desarrollo es una prioridad.<\/p>\n<p>Desde un punto de vista tecnol\u00f3gico, el da\u00f1o que se causa a una web o app puede afectar a otros sistemas, como por ejemplo la base de datos del backend o el sistema del usuario.<\/p>\n<h2><a href=\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/codigo-seguro01.jpg\"><img decoding=\"async\" class=\"aligncenter wp-image-5151\" title=\"La seguridad es la prioridad de un desarrollo de c\u00f3digo\" src=\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/codigo-seguro01-300x169.jpg\" alt=\"La seguridad es la prioridad de un desarrollo de c\u00f3digo\" width=\"663\" height=\"374\" srcset=\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/codigo-seguro01-300x169.jpg 300w, https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/codigo-seguro01-1024x576.jpg 1024w, https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/codigo-seguro01-1536x864.jpg 1536w\" sizes=\"(max-width: 663px) 100vw, 663px\" \/><\/a><\/h2>\n<h2><span class=\"ez-toc-section\" id=\"Seguridad_desde_el_inicio_del_desarrollo\"><\/span>Seguridad desde el inicio del desarrollo<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Las buenas pr\u00e1cticas de seguridad se deben seguir durante todo el proceso de creaci\u00f3n de c\u00f3digo, desde las primeras l\u00edneas de c\u00f3digo hasta la finalizaci\u00f3n del proyecto. Adem\u00e1s, hay que utilizar herramientas automatizadas para ir evaluando la calidad del c\u00f3digo y detectar fallos tan pronto se produzcan. Lo que nunca podemos hacer es ponernos a pensar en los aspectos de seguridad a mitad del proyecto de desarrollo.<\/p>\n<p>Dar prioridad a un c\u00f3digo seguro sale siempre a cuenta. Es cierto que el desarrollo puede perder velocidad y ganar complejidad. Sin embargo, no hay mayor tranquilidad que saber que la aplicaci\u00f3n dif\u00edcilmente va a sufrir problemas de seguridad en el futuro que puedan tener un impacto negativo en el negocio. \u00bfQu\u00e9 costes podr\u00eda tener que asumir la empresa si un ciberataque explotase una vulnerabilidad con \u00e9xito y hubiese una filtraci\u00f3n de informaci\u00f3n sensible de usuarios?<\/p>\n<p>Poner en pr\u00e1ctica unas normas de desarrollo seguro desde las primeras etapas del ciclo de desarrollo es m\u00e1s f\u00e1cil y m\u00e1s econ\u00f3mico que corregir problemas detectados a trav\u00e9s del testing en fases m\u00e1s avanzadas o cuando la aplicaci\u00f3n ya est\u00e1 en producci\u00f3n, es decir, cuando es utilizada por usuarios reales.<\/p>\n<p>Adem\u00e1s de seguir buenas pr\u00e1cticas de desarrollo seguro, hay que mantener el dise\u00f1o tan simple y m\u00ednimo como sea posible. Un dise\u00f1o muy complejo es una desventaja, ya que aumenta la probabilidad de errores de todo tipo, tambi\u00e9n de seguridad.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Buenas_practicas_para_la_seguridad_del_codigo_segun_OWASP\"><\/span>Buenas pr\u00e1cticas para la seguridad del c\u00f3digo seg\u00fan OWASP<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Cuando se trata de hacer desarrollos, no se puede reinventar la rueda. As\u00ed, los expertos han alcanzado consensos sobre qu\u00e9 pr\u00e1cticas garantizan un desarrollo seguro.<\/p>\n<p>Una de las gu\u00edas m\u00e1s seguidas es <a href=\"https:\/\/owasp.org\/www-project-secure-coding-practices-quick-reference-guide\/\" target=\"_blank\" rel=\"noopener\"><strong><em>OWASP Secure Coding Practices<\/em><\/strong><\/a>. Se trata de un documento muy pr\u00e1ctico, con buenas pr\u00e1cticas descritas a modo de checklist en un total de 14 \u00e1reas con impacto en el ciclo de desarrollo.<\/p>\n<p>Los 14 \u00e1mbitos de seguridad analizados por OWASP son:<\/p>\n<ul>\n<li>Validaci\u00f3n de entradas<\/li>\n<li>Codificaci\u00f3n de salidas<\/li>\n<li>Gesti\u00f3n de autenticaci\u00f3n y contrase\u00f1as<\/li>\n<li>Administraci\u00f3n de sesiones<\/li>\n<li>Control de acceso<\/li>\n<li>Pr\u00e1cticas criptogr\u00e1ficas<\/li>\n<li>Gesti\u00f3n de errores y logs<\/li>\n<li>Protecci\u00f3n de datos<\/li>\n<li>Seguridad en las comunicaciones<\/li>\n<li>Configuraci\u00f3n del sistema<\/li>\n<li>Seguridad de base de datos<\/li>\n<li>Gesti\u00f3n de archivos<\/li>\n<li>Gesti\u00f3n de memoria<\/li>\n<li>Pr\u00e1cticas generales para el desarrollo de c\u00f3digo<\/li>\n<\/ul>\n<h2><a href=\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/desarrollo02.jpg\"><img decoding=\"async\" class=\"aligncenter wp-image-5153\" title=\"Los desarrolladores siguen las pr\u00e1cticas de codificaci\u00f3n segura de OWASP\" src=\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/desarrollo02-300x200.jpg\" alt=\"Los desarrolladores siguen las pr\u00e1cticas de codificaci\u00f3n segura de OWASP\" width=\"589\" height=\"392\" srcset=\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/desarrollo02-300x200.jpg 300w, https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/desarrollo02-1024x683.jpg 1024w, https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/desarrollo02-1536x1024.jpg 1536w, https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/desarrollo02-270x180.jpg 270w, https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/desarrollo02-370x245.jpg 370w\" sizes=\"(max-width: 589px) 100vw, 589px\" \/><\/a><\/h2>\n<h2><span class=\"ez-toc-section\" id=\"Validacion_de_entradas_y_codificacion_de_salidas\"><\/span>Validaci\u00f3n de entradas y codificaci\u00f3n de salidas<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Una buena pr\u00e1ctica destacada en este \u00e1mbito es la necesidad de identificar todas las fuentes de datos, y de clasificarlas seg\u00fan si son de confianza o no son de confianza. Todos los datos que vengan de fuentes que no son de confianza (bases de datos, secuencias de archivo, etc), habr\u00eda que validarlos. Cualquier error en la validaci\u00f3n debe llevar al rechazo del dato de entrada.<\/p>\n<p>Una adecuada validaci\u00f3n de <em>inputs<\/em> puede eliminar una gran mayor\u00eda de vulnerabilidades de software. Cuatro de las <a href=\"https:\/\/owasp.org\/www-project-top-ten\/\" target=\"_blank\" rel=\"noopener\">10 principales vulnerabilidades<\/a>, seg\u00fan la lista de OWASP, vienen de confiar de forma err\u00f3nea en datos que entran en el sistema.<\/p>\n<p>En relaci\u00f3n a la codificaci\u00f3n de salidas, entre otras buenas pr\u00e1cticas hay que utilizar rutinas est\u00e1ndar testadas para cada tipo.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Gestion_de_autenticacion_y_contrasenas\"><\/span>Gesti\u00f3n de autenticaci\u00f3n y contrase\u00f1as<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Las contrase\u00f1as son un punto d\u00e9bil en muchos sistemas, raz\u00f3n que explica la generalizaci\u00f3n de la <strong>autenticaci\u00f3n multifactor<\/strong>. Ahora bien, las contrase\u00f1as son necesarias. De hecho, hoy son la acreditaci\u00f3n m\u00e1s com\u00fan para garantizar la seguridad.<\/p>\n<p>Como regla general, hay que pedir autenticaci\u00f3n para todos los recursos y p\u00e1ginas, excepto para aquellas que se han clasificado como p\u00fablicas.<\/p>\n<p>OWASP propone muchas buenas pr\u00e1cticas para reducir los riesgos. Entre estos consejos, podemos destacar los siguientes:<\/p>\n<ul>\n<li>Almacenar en la aplicaci\u00f3n solo los <strong>hashes criptogr\u00e1ficos con sal<\/strong> (del ingl\u00e9s <em>salted<\/em>) de las contrase\u00f1as, y no las contrase\u00f1as tal cual (en texto claro). La otra recomendaci\u00f3n importante es que la tabla\/fichero que guarda contrase\u00f1as y claves solo puede ser escrita por la aplicaci\u00f3n. En la protecci\u00f3n a trav\u00e9s de contrase\u00f1a, salt es una cadena de datos aleatoria que se utiliza para modificar un hash de contrase\u00f1a. Servicios online de todo tipo que usamos cada d\u00eda no almacenan la contrase\u00f1a que el usuario ha introducido, sino un valor hash para esa contrase\u00f1a.<\/li>\n<li>Obligar al usuario a poner contrase\u00f1as lo suficientemente largas y complejas para resistir los ataques m\u00e1s comunes.<\/li>\n<li>Deshabilitar la entrada de la contrase\u00f1a despu\u00e9s de varios intentos de inicio de sesi\u00f3n incorrectos.<\/li>\n<li>Reautenticar el usuario justo antes de la realizaci\u00f3n de operaciones cr\u00edticas.<\/li>\n<\/ul>\n<p>Las contrase\u00f1as son omnipresentes, pero podr\u00edan acabar siendo obsoletas con la tecnolog\u00eda <em>passkey<\/em>, un login sin password que ofrece m\u00e1s seguridad y m\u00e1s comodidad al usuario.<\/p>\n<p>Con los <em>passkeys<\/em>, la autenticaci\u00f3n requiere una autenticaci\u00f3n biom\u00e9trica \u2014como una huella dactilar\u2014 o un PIN o un patr\u00f3n para dispositivos Android.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Administracion_de_sesiones\"><\/span>Administraci\u00f3n de sesiones<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>La duraci\u00f3n de las sesiones debe ser lo m\u00e1s breve posible, buscando un equilibro entre las necesidades de seguridad del sistema y las necesidades del usuario\/cliente.<\/p>\n<p>Habr\u00eda que utilizar tokens para reforzar la gesti\u00f3n de sesiones para operaciones delicadas del lado del servidor, como por ejemplo la gesti\u00f3n de cuentas de usuario. Los tokens previenen los ataques de Cross Site Request Forgery.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Control_de_acceso\"><\/span>Control de acceso<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Las decisiones de acceso deben basarse en permisos, y no en exclusiones. En otras palabras, la idea es que el acceso se deniegue por defecto, y que el sistema identifique las condiciones bajo las cuales se permite un acceso. Por tanto, a los usuarios que no pueden demostrar autorizaci\u00f3n, se les debe denegar el acceso.<\/p>\n<blockquote><p>El <strong>principio del menor privilegio<\/strong> que propugna OWASP dice que un usuario no debe tener m\u00e1s permisos de los que le hacen falta<\/p><\/blockquote>\n<h2><span class=\"ez-toc-section\" id=\"Practicas_criptograficas\"><\/span>Pr\u00e1cticas criptogr\u00e1ficas<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>En caso de filtraci\u00f3n de datos, es fundamental la encriptaci\u00f3n de datos con algoritmos criptogr\u00e1ficos y seguir buenas pr\u00e1cticas de gesti\u00f3n segura de claves.<\/p>\n<p>Hay muchas librer\u00edas disponibles para ayudar a implementar la encriptaci\u00f3n. Ahora bien, es importante usar solo algoritmos y librer\u00edas est\u00e1ndar.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Gestion_de_errores_y_logs\"><\/span>Gesti\u00f3n de errores y logs<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Los errores de c\u00f3digo pueden apuntar muchas veces a vulnerabilidades, as\u00ed que la gesti\u00f3n y el registro de errores (logs) son dos t\u00e9cnicas muy \u00fatiles.<\/p>\n<ul>\n<li>La gesti\u00f3n de errores intenta detectar errores en el c\u00f3digo antes de que haya un fallo catastr\u00f3fico.<\/li>\n<li>El <em>logging<\/em> o registro de logs permite documentar los errores, para que as\u00ed los desarrolladores puedan diagnosticar la causa y solucionar el problema.<\/li>\n<\/ul>\n<p>Incluso los mejores desarrollos pueden tener errores. Lo que de verdad marca la diferencia es que, cuando haya un error, sea identificado y se trate lo antes posible para mitigar su impacto.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Proteccion_de_datos\"><\/span>Protecci\u00f3n de datos<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Muchos ciberataques buscan acceder a datos sensibles. De ah\u00ed que sean cruciales las buenas pr\u00e1cticas de codificaci\u00f3n en protecci\u00f3n de datos. Por ejemplo:<\/p>\n<ul>\n<li>Implementar el m\u00ednimo privilegio. Es decir, restringir el acceso de los usuarios solo a la funcionalidad, datos y sistemas de informaci\u00f3n que necesitan para hacer sus tareas.<\/li>\n<li>Proteger el cach\u00e9 con datos sensibles y eliminarlo tan pronto deje de hacer falta.<\/li>\n<li>Como ya hemos dicho, no almacenar contrase\u00f1as u otra informaci\u00f3n sensible en texto claro o sin encriptaci\u00f3n criptogr\u00e1fica.<\/li>\n<\/ul>\n<h2><a href=\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/desarrollo03.jpg\"><img decoding=\"async\" class=\" wp-image-5155 aligncenter\" src=\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/desarrollo03-300x200.jpg\" alt=\"\" width=\"535\" height=\"356\" srcset=\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/desarrollo03-300x200.jpg 300w, https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/desarrollo03-1024x683.jpg 1024w, https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/desarrollo03-1536x1024.jpg 1536w, https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/desarrollo03-270x180.jpg 270w, https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/desarrollo03-370x245.jpg 370w\" sizes=\"(max-width: 535px) 100vw, 535px\" \/><\/a><\/h2>\n<h2><span class=\"ez-toc-section\" id=\"Seguridad_en_las_comunicaciones\"><\/span>Seguridad en las comunicaciones<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Una de las buenas pr\u00e1cticas destacadas es implementar la encriptaci\u00f3n para todas las transmisiones de informaci\u00f3n sensible. Esto deber\u00eda incluir TLS para proteger la conexi\u00f3n. Adem\u00e1s, se puede recurrir a una encriptaci\u00f3n discreta de archivos sensibles o conexiones no basadas en HTTP.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Configuracion_del_sistema\"><\/span>Configuraci\u00f3n del sistema<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>La gu\u00eda de OWASP para un desarrollo seguro tambi\u00e9n describe buenas pr\u00e1cticas para la seguridad de los sistemas con los que se escribe el c\u00f3digo. La idea principal es tenerlo todo actualizado y trabajar solo con las funcionalidades y archivos estrictamente necesarios. Otro consejo obvio, pero que no est\u00e1 de m\u00e1s recordar, es llevar un sistema de control de cambios y versiones.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Seguridad_de_base_de_datos\"><\/span>Seguridad de base de datos<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Una recomendaci\u00f3n de seguridad destacada es el empleo de consultas parametrizadas, para evitar inyecciones SQL. Los datos de entrada en el sistema son interpretados como par\u00e1metros y no contienen c\u00f3digo ejecutable.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Gestion_de_archivos_y_de_memoria\"><\/span>Gesti\u00f3n de archivos y de memoria<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Una gesti\u00f3n de archivos segura exige autenticaci\u00f3n antes de transferir los archivos al servidor. Tambi\u00e9n hay que hacer una validaci\u00f3n de los tipos de archivo, a partir de los <em>file headers<\/em> (datos contenidos en el archivo con informaci\u00f3n que lo identifica), no a partir de las extensiones.<\/p>\n<p>La gesti\u00f3n de memoria segura requiere controles en la entrada y salida de informaci\u00f3n que no es de confianza. Otras buenas pr\u00e1cticas se refieren, por ejemplo, al tama\u00f1o de los <em>buffers<\/em>.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Practicas_generales_para_el_desarrollo_de_codigo\"><\/span>Pr\u00e1cticas generales para el desarrollo de c\u00f3digo<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>La gu\u00eda para el desarrollo seguro de OWASP concluye con una larga lista de pr\u00e1cticas de tipo general, como por ejemplo usar c\u00f3digo testado y verificado en vez de crear nuevo c\u00f3digo para las tareas habituales.<\/p>\n<p style=\"text-align: center;\"><a class=\"calltoaction\" href=\"https:\/\/www.omatech.com\/es\/contacto\" target=\"_blank\" rel=\"noopener\">Omatech crea proyectos digitales de c\u00f3digo seguro<\/a><\/p>\n<h2><a href=\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/desarrollo04.jpg\"><img decoding=\"async\" class=\" wp-image-5154 aligncenter\" src=\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/desarrollo04-300x200.jpg\" alt=\"\" width=\"601\" height=\"400\" srcset=\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/desarrollo04-300x200.jpg 300w, https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/desarrollo04-1024x683.jpg 1024w, https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/desarrollo04-1536x1024.jpg 1536w, https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/desarrollo04-270x180.jpg 270w, https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/desarrollo04-370x245.jpg 370w\" sizes=\"(max-width: 601px) 100vw, 601px\" \/><\/a><\/h2>\n<h2><span class=\"ez-toc-section\" id=\"Buenas_practicas_para_un_desarrollo_seguro_un_proceso_continuo\"><\/span>Buenas pr\u00e1cticas para un desarrollo seguro: un proceso continuo<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Un vez el c\u00f3digo ya est\u00e1 listo, se le debe hacer un <a href=\"https:\/\/www.omatech.com\/blog\/2022\/10\/11\/por-que-es-importante-el-mantenimiento-de-apps\/\" target=\"_blank\" rel=\"noopener\">mantenimiento<\/a> que permite mantener el list\u00f3n de la seguridad tan alto como sea posible.<\/p>\n<ul>\n<li><strong>M\u00ednimo privilegio<\/strong>. Hay que seguir fieles al principio seg\u00fan el cual los usuarios necesitan los permisos estrictamente necesarios.<\/li>\n<li><strong>Defensa en profundidad<\/strong>. El riesgo se debe gestionar con m\u00faltiples estrategias de defensa. De esta manera, si una capa de protecci\u00f3n no funciona, otra capa s\u00ed que puede evitar que una falla de seguridad sea una vulnerabilidad que alguien con malas ideas pueda aprovechar. Adem\u00e1s, tambi\u00e9n se trata de limitar las consecuencias negativas de un exploit con \u00e9xito.<\/li>\n<li><strong>T\u00e9cnicas para asegurar la calidad<\/strong>. Gracias al test PEN o test de penetraci\u00f3n, las auditor\u00edas de c\u00f3digo o el scanning de aplicaciones, podemos identificar y eliminar vulnerabilidades. Hay que hacer scanning de aplicaciones cada vez que grandes cambios o revisiones vayan a producci\u00f3n.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Analizamos las buenas pr\u00e1cticas para un desarrollo seguro de OWASP y explicamos por qu\u00e9 la seguridad es prioritaria al escribir c\u00f3digo.<\/p>\n","protected":false},"author":14,"featured_media":5149,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[73],"tags":[],"class_list":{"0":"post-5143","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-seguridad"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Buenas pr\u00e1cticas para un desarrollo seguro<\/title>\n<meta name=\"description\" content=\"Analizamos las buenas pr\u00e1cticas para un desarrollo seguro de OWASP y explicamos por qu\u00e9 la seguridad es prioritaria al escribir c\u00f3digo.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Buenas pr\u00e1cticas para un desarrollo seguro\" \/>\n<meta property=\"og:description\" content=\"Analizamos las buenas pr\u00e1cticas para un desarrollo seguro de OWASP y explicamos por qu\u00e9 la seguridad es prioritaria al escribir c\u00f3digo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/\" \/>\n<meta property=\"og:site_name\" content=\"El blog de Omatech\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Omatech\" \/>\n<meta property=\"article:published_time\" content=\"2022-11-30T12:27:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-28T14:54:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/Feed-Ciberseguridad.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1080\" \/>\n\t<meta property=\"og:image:height\" content=\"1350\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Manel Torrej\u00f3n\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@omatech\" \/>\n<meta name=\"twitter:site\" content=\"@omatech\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Manel Torrej\u00f3n\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/\"},\"author\":{\"name\":\"Manel Torrej\u00f3n\",\"@id\":\"https:\/\/www.omatech.com\/blog\/#\/schema\/person\/99206a7097a98e91305ee32d16c679fa\"},\"headline\":\"Buenas pr\u00e1cticas para un desarrollo seguro\",\"datePublished\":\"2022-11-30T12:27:53+00:00\",\"dateModified\":\"2023-08-28T14:54:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/\"},\"wordCount\":2392,\"publisher\":{\"@id\":\"https:\/\/www.omatech.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/Feed-Ciberseguridad.png\",\"articleSection\":[\"Seguridad\"],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/\",\"url\":\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/\",\"name\":\"Buenas pr\u00e1cticas para un desarrollo seguro\",\"isPartOf\":{\"@id\":\"https:\/\/www.omatech.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/Feed-Ciberseguridad.png\",\"datePublished\":\"2022-11-30T12:27:53+00:00\",\"dateModified\":\"2023-08-28T14:54:19+00:00\",\"description\":\"Analizamos las buenas pr\u00e1cticas para un desarrollo seguro de OWASP y explicamos por qu\u00e9 la seguridad es prioritaria al escribir c\u00f3digo.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#primaryimage\",\"url\":\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/Feed-Ciberseguridad.png\",\"contentUrl\":\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/Feed-Ciberseguridad.png\",\"width\":1080,\"height\":1350},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.omatech.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Buenas pr\u00e1cticas para un desarrollo seguro\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.omatech.com\/blog\/#website\",\"url\":\"https:\/\/www.omatech.com\/blog\/\",\"name\":\"El blog de Omatech\",\"description\":\"Blog\",\"publisher\":{\"@id\":\"https:\/\/www.omatech.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.omatech.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.omatech.com\/blog\/#organization\",\"name\":\"Omatech\",\"url\":\"https:\/\/www.omatech.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.omatech.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/05\/logo_omatech_blog.png\",\"contentUrl\":\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/05\/logo_omatech_blog.png\",\"width\":156,\"height\":33,\"caption\":\"Omatech\"},\"image\":{\"@id\":\"https:\/\/www.omatech.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Omatech\",\"https:\/\/x.com\/omatech\",\"https:\/\/www.instagram.com\/omatech\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.omatech.com\/blog\/#\/schema\/person\/99206a7097a98e91305ee32d16c679fa\",\"name\":\"Manel Torrej\u00f3n\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.omatech.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/958dd2c5f7ea22a87e7ed5122aa16e36a1c09bcb0f7c974c26706f97141036d6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/958dd2c5f7ea22a87e7ed5122aa16e36a1c09bcb0f7c974c26706f97141036d6?s=96&d=mm&r=g\",\"caption\":\"Manel Torrej\u00f3n\"},\"url\":\"https:\/\/www.omatech.com\/blog\/author\/mtorrejon\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Buenas pr\u00e1cticas para un desarrollo seguro","description":"Analizamos las buenas pr\u00e1cticas para un desarrollo seguro de OWASP y explicamos por qu\u00e9 la seguridad es prioritaria al escribir c\u00f3digo.","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:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/","og_locale":"es_ES","og_type":"article","og_title":"Buenas pr\u00e1cticas para un desarrollo seguro","og_description":"Analizamos las buenas pr\u00e1cticas para un desarrollo seguro de OWASP y explicamos por qu\u00e9 la seguridad es prioritaria al escribir c\u00f3digo.","og_url":"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/","og_site_name":"El blog de Omatech","article_publisher":"https:\/\/www.facebook.com\/Omatech","article_published_time":"2022-11-30T12:27:53+00:00","article_modified_time":"2023-08-28T14:54:19+00:00","og_image":[{"width":1080,"height":1350,"url":"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/Feed-Ciberseguridad.png","type":"image\/png"}],"author":"Manel Torrej\u00f3n","twitter_card":"summary_large_image","twitter_creator":"@omatech","twitter_site":"@omatech","twitter_misc":{"Escrito por":"Manel Torrej\u00f3n","Tiempo de lectura":"11 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#article","isPartOf":{"@id":"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/"},"author":{"name":"Manel Torrej\u00f3n","@id":"https:\/\/www.omatech.com\/blog\/#\/schema\/person\/99206a7097a98e91305ee32d16c679fa"},"headline":"Buenas pr\u00e1cticas para un desarrollo seguro","datePublished":"2022-11-30T12:27:53+00:00","dateModified":"2023-08-28T14:54:19+00:00","mainEntityOfPage":{"@id":"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/"},"wordCount":2392,"publisher":{"@id":"https:\/\/www.omatech.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#primaryimage"},"thumbnailUrl":"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/Feed-Ciberseguridad.png","articleSection":["Seguridad"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/","url":"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/","name":"Buenas pr\u00e1cticas para un desarrollo seguro","isPartOf":{"@id":"https:\/\/www.omatech.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#primaryimage"},"image":{"@id":"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#primaryimage"},"thumbnailUrl":"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/Feed-Ciberseguridad.png","datePublished":"2022-11-30T12:27:53+00:00","dateModified":"2023-08-28T14:54:19+00:00","description":"Analizamos las buenas pr\u00e1cticas para un desarrollo seguro de OWASP y explicamos por qu\u00e9 la seguridad es prioritaria al escribir c\u00f3digo.","breadcrumb":{"@id":"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#primaryimage","url":"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/Feed-Ciberseguridad.png","contentUrl":"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/11\/Feed-Ciberseguridad.png","width":1080,"height":1350},{"@type":"BreadcrumbList","@id":"https:\/\/www.omatech.com\/blog\/2022\/11\/30\/buenas-practicas-para-un-desarrollo-seguro\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.omatech.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Buenas pr\u00e1cticas para un desarrollo seguro"}]},{"@type":"WebSite","@id":"https:\/\/www.omatech.com\/blog\/#website","url":"https:\/\/www.omatech.com\/blog\/","name":"El blog de Omatech","description":"Blog","publisher":{"@id":"https:\/\/www.omatech.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.omatech.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.omatech.com\/blog\/#organization","name":"Omatech","url":"https:\/\/www.omatech.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.omatech.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/05\/logo_omatech_blog.png","contentUrl":"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/05\/logo_omatech_blog.png","width":156,"height":33,"caption":"Omatech"},"image":{"@id":"https:\/\/www.omatech.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Omatech","https:\/\/x.com\/omatech","https:\/\/www.instagram.com\/omatech\/"]},{"@type":"Person","@id":"https:\/\/www.omatech.com\/blog\/#\/schema\/person\/99206a7097a98e91305ee32d16c679fa","name":"Manel Torrej\u00f3n","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.omatech.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/958dd2c5f7ea22a87e7ed5122aa16e36a1c09bcb0f7c974c26706f97141036d6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/958dd2c5f7ea22a87e7ed5122aa16e36a1c09bcb0f7c974c26706f97141036d6?s=96&d=mm&r=g","caption":"Manel Torrej\u00f3n"},"url":"https:\/\/www.omatech.com\/blog\/author\/mtorrejon\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.omatech.com\/blog\/wp-json\/wp\/v2\/posts\/5143","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.omatech.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.omatech.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.omatech.com\/blog\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.omatech.com\/blog\/wp-json\/wp\/v2\/comments?post=5143"}],"version-history":[{"count":15,"href":"https:\/\/www.omatech.com\/blog\/wp-json\/wp\/v2\/posts\/5143\/revisions"}],"predecessor-version":[{"id":5706,"href":"https:\/\/www.omatech.com\/blog\/wp-json\/wp\/v2\/posts\/5143\/revisions\/5706"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.omatech.com\/blog\/wp-json\/wp\/v2\/media\/5149"}],"wp:attachment":[{"href":"https:\/\/www.omatech.com\/blog\/wp-json\/wp\/v2\/media?parent=5143"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.omatech.com\/blog\/wp-json\/wp\/v2\/categories?post=5143"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.omatech.com\/blog\/wp-json\/wp\/v2\/tags?post=5143"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}