{"id":64,"date":"2011-05-24T20:05:42","date_gmt":"2011-05-24T20:05:42","guid":{"rendered":"https:\/\/www.jose-aguilar.com\/blog\/?p=64"},"modified":"2011-09-05T20:08:26","modified_gmt":"2011-09-05T20:08:26","slug":"seguridad-en-tiendas-virtuales","status":"publish","type":"post","link":"https:\/\/www.jose-aguilar.com\/blog\/seguridad-en-tiendas-virtuales\/","title":{"rendered":"Seguridad en tiendas virtuales"},"content":{"rendered":"<p><a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2011\/05\/seguridad.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-69\" title=\"seguridad\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2011\/05\/seguridad.jpg\" alt=\"\" width=\"120\" height=\"96\" \/><\/a>En el siguiente documento vamos a detallar una peque\u00f1a primera <strong>Guia de Seguridad para tiendas online<\/strong>, que b\u00e1sicamente se podr\u00eda portar a casi cualquier aplicaci\u00f3n PHP.<\/p>\n<h3>Principales archivos a modificar:<\/h3>\n<p><strong>php.ini<\/strong> (Configuraci\u00f3n general del PHP, si phpsuexec activado, tendremos que editarlo en la carpeta de la aplicaci\u00f3n que vayamos a programar)<\/p>\n<p><strong>httpd.conf <\/strong>(configuraci\u00f3n del apache)<\/p>\n<p><strong>.htaccess <\/strong>(sobreescribir las directivas del php.ini si nos lo permiten y no est\u00e1 activado phpsuexec)<\/p>\n<p>Para tener una primera vision de la configuraci\u00f3n general, y valorar si\u00a0tenemos puntos\u00a0comprometidos,\u00a0deberemos crear un archivo php con el siguiente c\u00f3digo y visitarlo con nuestro navegador:<\/p>\n<p>&lt;?php phpinfo() ?&gt;<\/p>\n<h3>Pasos a seguir:<\/h3>\n<p>1) No\u00a0mostrar errores a nuestros\u00a0intrusos, para ello definiremos\u00a0en el <strong>.htaccess<\/strong><\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\nphp_flag display_errors Off\r\nphp_flag log_errors On\r\nphp_value error_log \u201cRuta completa al fichero de log\u201d\r\n<\/pre>\n<p>&#8211; Que no se muestren los errores en pantalla, y cambiarlo a que se guarden en la maquina en un fichero local solo accesible para el webmaster.<\/p>\n<p>2) El famoso <strong>Register globals<\/strong> que por defecto ahora viene desactivado. En las tiendas <a href=\"http:\/\/www.oscommerce.com\/\">oscommerce<\/a> a partir de la RC1 ya no hace falta tenerla activada (en MS2 y anteriores si), por lo que ya no tendremos ese problema de configuraci\u00f3n. Tenerlo activo no es un problema de seguridad en s\u00ed, si el c\u00f3digo est\u00e1 bien implementado, pero si por defecto ya viene desactivado, estamos obligados a no jugar con \u201cfuego\u201d al poder pasar par\u00e1metros por GET y POST dentro de las variables globales de nuestra aplicaci\u00f3n. Para desactivar esta directiva:<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\nphp_flag register_globals Off\r\n<\/pre>\n<p>3) Usar SAFE_MODE o no\u2026 en mi opini\u00f3n solo \u00e9s \u00fatil para servidores compartidos, donde hay varios usuarios, y as\u00ed evitar que unos accedan o incluyan los ficheros de los otros. El \u00fanico y gran problema es que al tenerlo activo, tendremos incompatibilidades con otros m\u00f3dulos y funcionalidades. Habr\u00eda que valorar si es realmente necesario tenerlo activo en nuestro servidor.<\/p>\n<p>4) Doble protecci\u00f3n de nuestros ficheros de administraci\u00f3n. Por ejemplo\u2026 toda la carpeta administrador o backend de la aplicaci\u00f3n implementar protecci\u00f3n mediante formulario de login, y adem\u00e1s a\u00f1adir protecci\u00f3n mediante apache desde nuestro panel de control de hosting o a mano.<\/p>\n<p>5) Denegar el acceso a nuestros directorios y ficheros de configuraci\u00f3n o \u201csensibles\u201d con la siguiente instrucci\u00f3n en el .htaccess (dentro del directorio donde se encuentran los archivos a proteger)<\/p>\n<p>Proteger ficheros php:<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\n\r\nOrder Deny,Allow\r\nDeny from all\r\n\r\n<\/pre>\n<p>Proteger todos los ficheros del directorio que se especifique:<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\n\r\nOrder Allow,Deny\r\n\r\n<\/pre>\n<p>6) Sistemas de pago. El m\u00e1s sensible sin duda es la tarjeta de cr\u00e9dito. Los m\u00e1s seguros son los que usan webservices, y sin salir de la web, pero a d\u00eda de hoy solo es viable con BBVA y alg\u00fan otro banco.\u00a0 Mi recomendaci\u00f3n es usar el sistema TPV de servired, que podremos encontrar en casi todas las cajas y caixas (La caixa, Caixa catalunya, Caja madrid, etc) que atrav\u00e9s de una firma Sha1 completa ampliada y una clave personal se transmite la informaci\u00f3n de forma \u201csegura\u201d entre la p\u00e1gina del banco (quien se encargar\u00e1 por nosotros de recoger los datos de la tarjeta y comprobar su veracidad) y nuestra tienda, que ser\u00e1 la que reciba la confirmaci\u00f3n y autorizaci\u00f3n del pago.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En el siguiente documento vamos a detallar una peque\u00f1a primera Guia de Seguridad para tiendas online, que b\u00e1sicamente se podr\u00eda portar a casi cualquier aplicaci\u00f3n PHP. Principales archivos a modificar: php.ini (Configuraci\u00f3n general del PHP, si phpsuexec activado, tendremos que editarlo en la carpeta de la aplicaci\u00f3n que vayamos a programar) httpd.conf (configuraci\u00f3n del apache) [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":65,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,23],"tags":[],"class_list":["post-64","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php","category-seguridad-web"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Seguridad en tiendas virtuales - Jose Aguilar Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Seguridad en tiendas virtuales - Jose Aguilar Blog\" \/>\n<meta property=\"og:description\" content=\"En el siguiente documento vamos a detallar una peque\u00f1a primera Guia de Seguridad para tiendas online, que b\u00e1sicamente se podr\u00eda portar a casi cualquier aplicaci\u00f3n PHP. Principales archivos a modificar: php.ini (Configuraci\u00f3n general del PHP, si phpsuexec activado, tendremos que editarlo en la carpeta de la aplicaci\u00f3n que vayamos a programar) httpd.conf (configuraci\u00f3n del apache) [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.jose-aguilar.com\/blog\/seguridad-en-tiendas-virtuales\/\" \/>\n<meta property=\"og:site_name\" content=\"Jose Aguilar Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/joseaguilarblog\" \/>\n<meta property=\"article:published_time\" content=\"2011-05-24T20:05:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2011-09-05T20:08:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2011\/09\/seguridad.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"120\" \/>\n\t<meta property=\"og:image:height\" content=\"96\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jose Aguilar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:site\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jose Aguilar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/seguridad-en-tiendas-virtuales\/\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/seguridad-en-tiendas-virtuales\/\",\"name\":\"Seguridad en tiendas virtuales - Jose Aguilar Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/seguridad-en-tiendas-virtuales\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/seguridad-en-tiendas-virtuales\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2011\/09\/seguridad.jpg\",\"datePublished\":\"2011-05-24T20:05:42+00:00\",\"dateModified\":\"2011-09-05T20:08:26+00:00\",\"author\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/seguridad-en-tiendas-virtuales\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.jose-aguilar.com\/blog\/seguridad-en-tiendas-virtuales\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/seguridad-en-tiendas-virtuales\/#primaryimage\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2011\/09\/seguridad.jpg\",\"contentUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2011\/09\/seguridad.jpg\",\"width\":120,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/seguridad-en-tiendas-virtuales\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.jose-aguilar.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Seguridad en tiendas virtuales\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/\",\"name\":\"Jose Aguilar Blog\",\"description\":\"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\",\"name\":\"Jose Aguilar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"caption\":\"Jose Aguilar\"},\"description\":\"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.\",\"sameAs\":[\"https:\/\/plus.google.com\/114357189801512615537\"],\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Seguridad en tiendas virtuales - Jose Aguilar Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"es_ES","og_type":"article","og_title":"Seguridad en tiendas virtuales - Jose Aguilar Blog","og_description":"En el siguiente documento vamos a detallar una peque\u00f1a primera Guia de Seguridad para tiendas online, que b\u00e1sicamente se podr\u00eda portar a casi cualquier aplicaci\u00f3n PHP. Principales archivos a modificar: php.ini (Configuraci\u00f3n general del PHP, si phpsuexec activado, tendremos que editarlo en la carpeta de la aplicaci\u00f3n que vayamos a programar) httpd.conf (configuraci\u00f3n del apache) [&hellip;]","og_url":"https:\/\/www.jose-aguilar.com\/blog\/seguridad-en-tiendas-virtuales\/","og_site_name":"Jose Aguilar Blog","article_publisher":"https:\/\/www.facebook.com\/joseaguilarblog","article_published_time":"2011-05-24T20:05:42+00:00","article_modified_time":"2011-09-05T20:08:26+00:00","og_image":[{"width":120,"height":96,"url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2011\/09\/seguridad.jpg","type":"image\/jpeg"}],"author":"Jose Aguilar","twitter_card":"summary_large_image","twitter_creator":"@JoseAguilarBlog","twitter_site":"@JoseAguilarBlog","twitter_misc":{"Escrito por":"Jose Aguilar","Tiempo de lectura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.jose-aguilar.com\/blog\/seguridad-en-tiendas-virtuales\/","url":"https:\/\/www.jose-aguilar.com\/blog\/seguridad-en-tiendas-virtuales\/","name":"Seguridad en tiendas virtuales - Jose Aguilar Blog","isPartOf":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/seguridad-en-tiendas-virtuales\/#primaryimage"},"image":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/seguridad-en-tiendas-virtuales\/#primaryimage"},"thumbnailUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2011\/09\/seguridad.jpg","datePublished":"2011-05-24T20:05:42+00:00","dateModified":"2011-09-05T20:08:26+00:00","author":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11"},"breadcrumb":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/seguridad-en-tiendas-virtuales\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.jose-aguilar.com\/blog\/seguridad-en-tiendas-virtuales\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/seguridad-en-tiendas-virtuales\/#primaryimage","url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2011\/09\/seguridad.jpg","contentUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2011\/09\/seguridad.jpg","width":120,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/www.jose-aguilar.com\/blog\/seguridad-en-tiendas-virtuales\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.jose-aguilar.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Seguridad en tiendas virtuales"}]},{"@type":"WebSite","@id":"https:\/\/www.jose-aguilar.com\/blog\/#website","url":"https:\/\/www.jose-aguilar.com\/blog\/","name":"Jose Aguilar Blog","description":"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11","name":"Jose Aguilar","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","caption":"Jose Aguilar"},"description":"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.","sameAs":["https:\/\/plus.google.com\/114357189801512615537"],"url":"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/"}]}},"_links":{"self":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/64","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/comments?post=64"}],"version-history":[{"count":0,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/64\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media\/65"}],"wp:attachment":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media?parent=64"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/categories?post=64"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/tags?post=64"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}