{"id":235875,"date":"2020-08-28T17:27:19","date_gmt":"2020-08-28T15:27:19","guid":{"rendered":"https:\/\/emariete.com\/?p=235875"},"modified":"2020-08-28T17:27:19","modified_gmt":"2020-08-28T15:27:19","slug":"vulnerability-meteotemplate-as-affects-each-other","status":"publish","type":"post","link":"https:\/\/emariete.com\/en\/vulnerabilidad-meteotemplate-como-afecta-seo\/","title":{"rendered":"Vulnerability in Meteotemplate and how it affects SEO"},"content":{"rendered":"<p><b><div class=\"trp-shortcode-switcher__wrapper\"\r\n     style=\"--bg:#ffffff;--bg-hover:#0000000d;--text:#143852;--text-hover:#1d2327;--border:1px solid #1438521a;--border-width:1px;--border-color:#1438521a;--border-radius:5px;--flag-radius:2px;--flag-size:18px;--aspect-ratio:4\/3;--font-size:14px;--transition-duration:0.2s\"\r\n     role=\"group\"\r\n     data-open-mode=\"hover\">\r\n\r\n    \r\n        <!-- ANCHOR (in-flow only; sizing\/borders; inert) -->\r\n        <div class=\"trp-language-switcher trp-ls-dropdown trp-shortcode-switcher trp-shortcode-anchor trp-open-on-hover\"\r\n             aria-hidden=\"true\"\r\n             inert\r\n             data-no-translation>\r\n                <div class=\"trp-current-language-item__wrapper\">\r\n        <a class=\"trp-language-item trp-language-item__default trp-language-item__current\" data-no-translation href=\"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/posts\/235875#TRPLINKPROCESSED\" title=\"English (UK)\"><img decoding=\"async\" src=\"https:\/\/emariete.com\/wp-content\/plugins\/translatepress-multilingual\/assets\/flags\/4x3\/en_GB.svg\" class=\"trp-flag-image\" alt=\"\" role=\"presentation\" loading=\"lazy\" \/><span class=\"trp-language-item-name\">English (UK)<\/span><\/a>                    <svg class=\"trp-shortcode-arrow\" width=\"20\" height=\"20\" viewBox=\"0 0 20 21\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n                <path d=\"M5 8L10 13L15 8\" stroke=\"var(--text)\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\r\n            <\/svg>\r\n            <\/div>\r\n            <\/div>\r\n\r\n        <!-- OVERLAY (positioned; interactive surface) -->\r\n        <div class=\"trp-language-switcher trp-ls-dropdown trp-shortcode-switcher trp-shortcode-overlay trp-open-on-hover\"\r\n             role=\"navigation\"\r\n             aria-label=\"Website language selector\"\r\n             data-no-translation\r\n        >\r\n                <div class=\"trp-current-language-item__wrapper\">\r\n        <div class=\"trp-language-item trp-language-item__default trp-language-item__current\" data-no-translation role=\"button\" aria-expanded=\"false\" tabindex=\"0\" aria-label=\"Change language\" aria-controls=\"trp-shortcode-dropdown-6ab218834b7e9\"><img decoding=\"async\" src=\"https:\/\/emariete.com\/wp-content\/plugins\/translatepress-multilingual\/assets\/flags\/4x3\/en_GB.svg\" class=\"trp-flag-image\" alt=\"\" role=\"presentation\" loading=\"lazy\" \/><span class=\"trp-language-item-name\">English (UK)<\/span><\/div>                    <svg class=\"trp-shortcode-arrow\" width=\"20\" height=\"20\" viewBox=\"0 0 20 21\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n                <path d=\"M5 8L10 13L15 8\" stroke=\"var(--text)\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\r\n            <\/svg>\r\n            <\/div>\r\n    \r\n            <div class=\"trp-switcher-dropdown-list\"\r\n                 id=\"trp-shortcode-dropdown-6ab218834b7e9\"\r\n                 role=\"group\"\r\n                 aria-label=\"Available languages\"\r\n                 hidden\r\n                 inert\r\n            >\r\n                                                            <a class=\"trp-language-item\" href=\"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/posts\/235875#TRPLINKPROCESSED\" title=\"Espa\u00f1ol\">\r\n                            <img decoding=\"async\" src=\"https:\/\/emariete.com\/wp-content\/plugins\/translatepress-multilingual\/assets\/flags\/4x3\/es_ES.svg\" class=\"trp-flag-image\" alt=\"\" role=\"presentation\" loading=\"lazy\" \/>                                                            <span class=\"trp-language-item-name\" data-no-translation>Espa\u00f1ol<\/span>\r\n                                                                                <\/a>\r\n                                                <\/div>\r\n        <\/div>\r\n\r\n    <\/div>\r\n<\/b><\/p>\n<p><b><\/b><\/p>\n<h2>Vulnerabilidad en Meteotemplate<\/h2>\n<h2>\u00bfQu\u00e9 es Meteotemplate?<\/h2>\n<p><span style=\"font-size: 18px;\">Meteotemplate es <\/span><strong style=\"font-size: 18px;\">un paquete de software<\/strong><span style=\"font-size: 18px;\">, o plantilla, que cientos de estaciones meteorol\u00f3gicas de aficionados de todo el mundo utilizan para crear completas y vistosas p\u00e1ginas web con datos meteorol\u00f3gicos.<\/span><\/p>\n<p><a href=\"https:\/\/emariete.com\/estacion-meteorologica-madrid-espana\">Mi estaci\u00f3n meteorol\u00f3gica<\/a> env\u00eda sus datos a internet, desde hace varios a\u00f1os con la ayuda de una <a href=\"https:\/\/emariete.com\/mi-estacion-meteorologica-puesta-en-marcha\">Raspberry Pi, el software de c\u00f3digo abierto WeeWx, y la plantilla Meteotemplate<\/a><a title=\"Meteotemplate \" href=\"http:\/\/www.meteotemplate.com\/web\/index.php\" target=\"_blank\" rel=\"noopener noreferrer\">.<\/a><\/p>\n<p>Recientemente descubr\u00ed analizando datos del servidor de eMariete.com que <strong>estaba recibiendo un tr\u00e1fico bastante sospechoso<\/strong>. Me puse a investigarlo y descubr\u00ed que el problema estaba en Meteotemplate.<\/p>\n<p><strong>Meteotemplate tiene una vulnerabilidad de tipo open redirect<\/strong> (llamada t\u00e9cnicamente <em>CWE-601 [ URL Redirection to Untrusted Site (&#8216;Open Redirect&#8217;) ]<\/em>) que hace que \u00ab<em>los malos<\/em>\u00bb puedan utilizarla para<strong> cometer sus fechor\u00edas<\/strong> (principalmente ataques<strong>\u00a0de phishing, <\/strong>pero es utilizable para muchos m\u00e1s tipos de ataque y enmascaramiento de tr\u00e1fico y enlaces).<\/p>\n<div class=\"ms-editor-squiggler\" style=\"animation: initial; transition: initial; color: initial; color-scheme: initial; font: initial; font-feature-settings: initial; font-kerning: initial; font-optical-sizing: initial; font-variation-settings: initial; text-orientation: initial; text-rendering: initial; -webkit-font-smoothing: initial; -webkit-locale: initial; -webkit-text-orientation: initial; -webkit-writing-mode: initial; writing-mode: initial; zoom: initial; place-content: initial; place-items: initial; place-self: initial; alignment-baseline: initial; appearance: initial; backdrop-filter: initial; backface-visibility: initial; background: initial; background-blend-mode: initial; baseline-shift: initial; block-size: initial; border-block-end: initial; border-block-start: initial; border: initial; border-radius: initial; border-collapse: initial; border-inline-end: initial; border-inline-start: initial; bottom: initial; box-shadow: initial; box-sizing: initial; break-after: initial; break-before: initial; break-inside: initial; buffered-rendering: initial; caption-side: initial; caret-color: initial; clear: initial; clip: initial; clip-path: initial; clip-rule: initial; color-interpolation: initial; color-interpolation-filters: initial; color-rendering: initial; columns: initial; column-fill: initial; gap: initial; column-rule: initial; column-span: initial; contain: initial; contain-intrinsic-size: initial; content: initial; counter-increment: initial; counter-reset: initial; cursor: initial; cx: initial; cy: initial; d: initial; display: block; dominant-baseline: initial; empty-cells: initial; fill: initial; fill-opacity: initial; fill-rule: initial; filter: initial; flex: initial; flex-flow: initial; float: initial; flood-color: initial; flood-opacity: initial; grid: initial; grid-area: initial; height: initial; hyphens: initial; image-orientation: initial; image-rendering: initial; inline-size: initial; isolation: initial; left: initial; letter-spacing: initial; lighting-color: initial; line-break: initial; list-style: initial; margin-block-end: initial; margin-block-start: initial; margin: initial; margin-inline-end: initial; margin-inline-start: initial; marker: initial; mask: initial; mask-type: initial; max-block-size: initial; max-height: initial; max-inline-size: initial; max-width: initial; min-block-size: initial; min-height: initial; min-inline-size: initial; min-width: initial; mix-blend-mode: initial; object-fit: initial; object-position: initial; offset: initial; opacity: initial; order: initial; origin-trial-test-property: initial; orphans: initial; outline: initial; outline-offset: initial; overflow-anchor: initial; overflow-wrap: initial; overflow: initial; overscroll-behavior-block: initial; overscroll-behavior-inline: initial; overscroll-behavior: initial; padding-block-end: initial; padding-block-start: initial; padding: initial; padding-inline-end: initial; padding-inline-start: initial; paint-order: initial; perspective: initial; perspective-origin: initial; pointer-events: initial; position: initial; quotes: initial; r: initial; resize: initial; right: initial; ruby-position: initial; rx: initial; ry: initial; scroll-behavior: initial; scroll-margin-block: initial; scroll-margin: initial; scroll-margin-inline: initial; scroll-padding-block: initial; scroll-padding: initial; scroll-padding-inline: initial; scroll-snap-align: initial; scroll-snap-stop: initial; scroll-snap-type: initial; shape-image-threshold: initial; shape-margin: initial; shape-outside: initial; shape-rendering: initial; size: initial; speak: initial; stop-color: initial; stop-opacity: initial; stroke: initial; stroke-dasharray: initial; stroke-dashoffset: initial; stroke-linecap: initial; stroke-linejoin: initial; stroke-miterlimit: initial; stroke-opacity: initial; stroke-width: initial; tab-size: initial; table-layout: initial; text-align: initial; text-align-last: initial; text-anchor: initial; text-combine-upright: initial; text-decoration: initial; text-decoration-skip-ink: initial; text-indent: initial; text-overflow: initial; text-shadow: initial; text-size-adjust: initial; text-transform: initial; text-underline-position: initial; top: initial; touch-action: initial; transform: initial; transform-box: initial; transform-origin: initial; transform-style: initial; user-select: initial; vector-effect: initial; vertical-align: initial; visibility: initial; -webkit-app-region: initial; border-spacing: initial; -webkit-border-image: initial; -webkit-box-align: initial; -webkit-box-decoration-break: initial; -webkit-box-direction: initial; -webkit-box-flex: initial; -webkit-box-ordinal-group: initial; -webkit-box-orient: initial; -webkit-box-pack: initial; -webkit-box-reflect: initial; -webkit-font-size-delta: initial; -webkit-highlight: initial; -webkit-hyphenate-character: initial; -webkit-line-break: initial; -webkit-line-clamp: initial; -webkit-mask-box-image: initial; -webkit-mask: initial; -webkit-mask-composite: initial; -webkit-perspective-origin-x: initial; -webkit-perspective-origin-y: initial; -webkit-print-color-adjust: initial; -webkit-rtl-ordering: initial; -webkit-ruby-position: initial; -webkit-tap-highlight-color: initial; -webkit-text-combine: initial; -webkit-text-decorations-in-effect: initial; -webkit-text-emphasis: initial; -webkit-text-emphasis-position: initial; -webkit-text-fill-color: initial; -webkit-text-security: initial; -webkit-text-stroke: initial; -webkit-transform-origin-x: initial; -webkit-transform-origin-y: initial; -webkit-transform-origin-z: initial; -webkit-user-drag: initial; -webkit-user-modify: initial; white-space: initial; widows: initial; width: initial; will-change: initial; word-break: initial; word-spacing: initial; x: initial; y: initial; z-index: initial;\"><\/div>\n<div class=\"ms-editor-squiggler\" style=\"animation: initial; transition: initial; color: initial; color-scheme: initial; font: initial; font-feature-settings: initial; font-kerning: initial; font-optical-sizing: initial; font-variation-settings: initial; text-orientation: initial; text-rendering: initial; -webkit-font-smoothing: initial; -webkit-locale: initial; -webkit-text-orientation: initial; -webkit-writing-mode: initial; writing-mode: initial; zoom: initial; place-content: initial; place-items: initial; place-self: initial; alignment-baseline: initial; appearance: initial; backdrop-filter: initial; backface-visibility: initial; background: initial; background-blend-mode: initial; baseline-shift: initial; block-size: initial; border-block-end: initial; border-block-start: initial; border: initial; border-radius: initial; border-collapse: initial; border-inline-end: initial; border-inline-start: initial; bottom: initial; box-shadow: initial; box-sizing: initial; break-after: initial; break-before: initial; break-inside: initial; buffered-rendering: initial; caption-side: initial; caret-color: initial; clear: initial; clip: initial; clip-path: initial; clip-rule: initial; color-interpolation: initial; color-interpolation-filters: initial; color-rendering: initial; columns: initial; column-fill: initial; gap: initial; column-rule: initial; column-span: initial; contain: initial; contain-intrinsic-size: initial; content: initial; counter-increment: initial; counter-reset: initial; cursor: initial; cx: initial; cy: initial; d: initial; display: block; dominant-baseline: initial; empty-cells: initial; fill: initial; fill-opacity: initial; fill-rule: initial; filter: initial; flex: initial; flex-flow: initial; float: initial; flood-color: initial; flood-opacity: initial; grid: initial; grid-area: initial; height: initial; hyphens: initial; image-orientation: initial; image-rendering: initial; inline-size: initial; isolation: initial; left: initial; letter-spacing: initial; lighting-color: initial; line-break: initial; list-style: initial; margin-block-end: initial; margin-block-start: initial; margin: initial; margin-inline-end: initial; margin-inline-start: initial; marker: initial; mask: initial; mask-type: initial; max-block-size: initial; max-height: initial; max-inline-size: initial; max-width: initial; min-block-size: initial; min-height: initial; min-inline-size: initial; min-width: initial; mix-blend-mode: initial; object-fit: initial; object-position: initial; offset: initial; opacity: initial; order: initial; origin-trial-test-property: initial; orphans: initial; outline: initial; outline-offset: initial; overflow-anchor: initial; overflow-wrap: initial; overflow: initial; overscroll-behavior-block: initial; overscroll-behavior-inline: initial; overscroll-behavior: initial; padding-block-end: initial; padding-block-start: initial; padding: initial; padding-inline-end: initial; padding-inline-start: initial; paint-order: initial; perspective: initial; perspective-origin: initial; pointer-events: initial; position: initial; quotes: initial; r: initial; resize: initial; right: initial; ruby-position: initial; rx: initial; ry: initial; scroll-behavior: initial; scroll-margin-block: initial; scroll-margin: initial; scroll-margin-inline: initial; scroll-padding-block: initial; scroll-padding: initial; scroll-padding-inline: initial; scroll-snap-align: initial; scroll-snap-stop: initial; scroll-snap-type: initial; shape-image-threshold: initial; shape-margin: initial; shape-outside: initial; shape-rendering: initial; size: initial; speak: initial; stop-color: initial; stop-opacity: initial; stroke: initial; stroke-dasharray: initial; stroke-dashoffset: initial; stroke-linecap: initial; stroke-linejoin: initial; stroke-miterlimit: initial; stroke-opacity: initial; stroke-width: initial; tab-size: initial; table-layout: initial; text-align: initial; text-align-last: initial; text-anchor: initial; text-combine-upright: initial; text-decoration: initial; text-decoration-skip-ink: initial; text-indent: initial; text-overflow: initial; text-shadow: initial; text-size-adjust: initial; text-transform: initial; text-underline-position: initial; top: initial; touch-action: initial; transform: initial; transform-box: initial; transform-origin: initial; transform-style: initial; user-select: initial; vector-effect: initial; vertical-align: initial; visibility: initial; -webkit-app-region: initial; border-spacing: initial; -webkit-border-image: initial; -webkit-box-align: initial; -webkit-box-decoration-break: initial; -webkit-box-direction: initial; -webkit-box-flex: initial; -webkit-box-ordinal-group: initial; -webkit-box-orient: initial; -webkit-box-pack: initial; -webkit-box-reflect: initial; -webkit-font-size-delta: initial; -webkit-highlight: initial; -webkit-hyphenate-character: initial; -webkit-line-break: initial; -webkit-line-clamp: initial; -webkit-mask-box-image: initial; -webkit-mask: initial; -webkit-mask-composite: initial; -webkit-perspective-origin-x: initial; -webkit-perspective-origin-y: initial; -webkit-print-color-adjust: initial; -webkit-rtl-ordering: initial; -webkit-ruby-position: initial; -webkit-tap-highlight-color: initial; -webkit-text-combine: initial; -webkit-text-decorations-in-effect: initial; -webkit-text-emphasis: initial; -webkit-text-emphasis-position: initial; -webkit-text-fill-color: initial; -webkit-text-security: initial; -webkit-text-stroke: initial; -webkit-transform-origin-x: initial; -webkit-transform-origin-y: initial; -webkit-transform-origin-z: initial; -webkit-user-drag: initial; -webkit-user-modify: initial; white-space: initial; widows: initial; width: initial; will-change: initial; word-break: initial; word-spacing: initial; x: initial; y: initial; z-index: initial;\"><\/div>\n<div class=\"ms-editor-squiggler\" style=\"animation: initial; transition: initial; color: initial; color-scheme: initial; font: initial; font-feature-settings: initial; font-kerning: initial; font-optical-sizing: initial; font-variation-settings: initial; text-orientation: initial; text-rendering: initial; -webkit-font-smoothing: initial; -webkit-locale: initial; -webkit-text-orientation: initial; -webkit-writing-mode: initial; writing-mode: initial; zoom: initial; place-content: initial; place-items: initial; place-self: initial; alignment-baseline: initial; appearance: initial; backdrop-filter: initial; backface-visibility: initial; background: initial; background-blend-mode: initial; baseline-shift: initial; block-size: initial; border-block-end: initial; border-block-start: initial; border: initial; border-radius: initial; border-collapse: initial; border-inline-end: initial; border-inline-start: initial; bottom: initial; box-shadow: initial; box-sizing: initial; break-after: initial; break-before: initial; break-inside: initial; buffered-rendering: initial; caption-side: initial; caret-color: initial; clear: initial; clip: initial; clip-path: initial; clip-rule: initial; color-interpolation: initial; color-interpolation-filters: initial; color-rendering: initial; columns: initial; column-fill: initial; gap: initial; column-rule: initial; column-span: initial; contain: initial; contain-intrinsic-size: initial; content: initial; counter-increment: initial; counter-reset: initial; cursor: initial; cx: initial; cy: initial; d: initial; display: block; dominant-baseline: initial; empty-cells: initial; fill: initial; fill-opacity: initial; fill-rule: initial; filter: initial; flex: initial; flex-flow: initial; float: initial; flood-color: initial; flood-opacity: initial; grid: initial; grid-area: initial; height: initial; hyphens: initial; image-orientation: initial; image-rendering: initial; inline-size: initial; isolation: initial; left: initial; letter-spacing: initial; lighting-color: initial; line-break: initial; list-style: initial; margin-block-end: initial; margin-block-start: initial; margin: initial; margin-inline-end: initial; margin-inline-start: initial; marker: initial; mask: initial; mask-type: initial; max-block-size: initial; max-height: initial; max-inline-size: initial; max-width: initial; min-block-size: initial; min-height: initial; min-inline-size: initial; min-width: initial; mix-blend-mode: initial; object-fit: initial; object-position: initial; offset: initial; opacity: initial; order: initial; origin-trial-test-property: initial; orphans: initial; outline: initial; outline-offset: initial; overflow-anchor: initial; overflow-wrap: initial; overflow: initial; overscroll-behavior-block: initial; overscroll-behavior-inline: initial; overscroll-behavior: initial; padding-block-end: initial; padding-block-start: initial; padding: initial; padding-inline-end: initial; padding-inline-start: initial; paint-order: initial; perspective: initial; perspective-origin: initial; pointer-events: initial; position: initial; quotes: initial; r: initial; resize: initial; right: initial; ruby-position: initial; rx: initial; ry: initial; scroll-behavior: initial; scroll-margin-block: initial; scroll-margin: initial; scroll-margin-inline: initial; scroll-padding-block: initial; scroll-padding: initial; scroll-padding-inline: initial; scroll-snap-align: initial; scroll-snap-stop: initial; scroll-snap-type: initial; shape-image-threshold: initial; shape-margin: initial; shape-outside: initial; shape-rendering: initial; size: initial; speak: initial; stop-color: initial; stop-opacity: initial; stroke: initial; stroke-dasharray: initial; stroke-dashoffset: initial; stroke-linecap: initial; stroke-linejoin: initial; stroke-miterlimit: initial; stroke-opacity: initial; stroke-width: initial; tab-size: initial; table-layout: initial; text-align: initial; text-align-last: initial; text-anchor: initial; text-combine-upright: initial; text-decoration: initial; text-decoration-skip-ink: initial; text-indent: initial; text-overflow: initial; text-shadow: initial; text-size-adjust: initial; text-transform: initial; text-underline-position: initial; top: initial; touch-action: initial; transform: initial; transform-box: initial; transform-origin: initial; transform-style: initial; user-select: initial; vector-effect: initial; vertical-align: initial; visibility: initial; -webkit-app-region: initial; border-spacing: initial; -webkit-border-image: initial; -webkit-box-align: initial; -webkit-box-decoration-break: initial; -webkit-box-direction: initial; -webkit-box-flex: initial; -webkit-box-ordinal-group: initial; -webkit-box-orient: initial; -webkit-box-pack: initial; -webkit-box-reflect: initial; -webkit-font-size-delta: initial; -webkit-highlight: initial; -webkit-hyphenate-character: initial; -webkit-line-break: initial; -webkit-line-clamp: initial; -webkit-mask-box-image: initial; -webkit-mask: initial; -webkit-mask-composite: initial; -webkit-perspective-origin-x: initial; -webkit-perspective-origin-y: initial; -webkit-print-color-adjust: initial; -webkit-rtl-ordering: initial; -webkit-ruby-position: initial; -webkit-tap-highlight-color: initial; -webkit-text-combine: initial; -webkit-text-decorations-in-effect: initial; -webkit-text-emphasis: initial; -webkit-text-emphasis-position: initial; -webkit-text-fill-color: initial; -webkit-text-security: initial; -webkit-text-stroke: initial; -webkit-transform-origin-x: initial; -webkit-transform-origin-y: initial; -webkit-transform-origin-z: initial; -webkit-user-drag: initial; -webkit-user-modify: initial; white-space: initial; widows: initial; width: initial; will-change: initial; word-break: initial; word-spacing: initial; x: initial; y: initial; z-index: initial;\"><\/div>\n<div class=\"ms-editor-squiggler\" style=\"animation: initial; transition: initial; color: initial; color-scheme: initial; font: initial; font-feature-settings: initial; font-kerning: initial; font-optical-sizing: initial; font-variation-settings: initial; text-orientation: initial; text-rendering: initial; -webkit-font-smoothing: initial; -webkit-locale: initial; -webkit-text-orientation: initial; -webkit-writing-mode: initial; writing-mode: initial; zoom: initial; place-content: initial; place-items: initial; place-self: initial; alignment-baseline: initial; appearance: initial; backdrop-filter: initial; backface-visibility: initial; background: initial; background-blend-mode: initial; baseline-shift: initial; block-size: initial; border-block-end: initial; border-block-start: initial; border: initial; border-radius: initial; border-collapse: initial; border-inline-end: initial; border-inline-start: initial; bottom: initial; box-shadow: initial; box-sizing: initial; break-after: initial; break-before: initial; break-inside: initial; buffered-rendering: initial; caption-side: initial; caret-color: initial; clear: initial; clip: initial; clip-path: initial; clip-rule: initial; color-interpolation: initial; color-interpolation-filters: initial; color-rendering: initial; columns: initial; column-fill: initial; gap: initial; column-rule: initial; column-span: initial; contain: initial; contain-intrinsic-size: initial; content: initial; counter-increment: initial; counter-reset: initial; cursor: initial; cx: initial; cy: initial; d: initial; display: block; dominant-baseline: initial; empty-cells: initial; fill: initial; fill-opacity: initial; fill-rule: initial; filter: initial; flex: initial; flex-flow: initial; float: initial; flood-color: initial; flood-opacity: initial; grid: initial; grid-area: initial; height: initial; hyphens: initial; image-orientation: initial; image-rendering: initial; inline-size: initial; isolation: initial; left: initial; letter-spacing: initial; lighting-color: initial; line-break: initial; list-style: initial; margin-block-end: initial; margin-block-start: initial; margin: initial; margin-inline-end: initial; margin-inline-start: initial; marker: initial; mask: initial; mask-type: initial; max-block-size: initial; max-height: initial; max-inline-size: initial; max-width: initial; min-block-size: initial; min-height: initial; min-inline-size: initial; min-width: initial; mix-blend-mode: initial; object-fit: initial; object-position: initial; offset: initial; opacity: initial; order: initial; origin-trial-test-property: initial; orphans: initial; outline: initial; outline-offset: initial; overflow-anchor: initial; overflow-wrap: initial; overflow: initial; overscroll-behavior-block: initial; overscroll-behavior-inline: initial; overscroll-behavior: initial; padding-block-end: initial; padding-block-start: initial; padding: initial; padding-inline-end: initial; padding-inline-start: initial; paint-order: initial; perspective: initial; perspective-origin: initial; pointer-events: initial; position: initial; quotes: initial; r: initial; resize: initial; right: initial; ruby-position: initial; rx: initial; ry: initial; scroll-behavior: initial; scroll-margin-block: initial; scroll-margin: initial; scroll-margin-inline: initial; scroll-padding-block: initial; scroll-padding: initial; scroll-padding-inline: initial; scroll-snap-align: initial; scroll-snap-stop: initial; scroll-snap-type: initial; shape-image-threshold: initial; shape-margin: initial; shape-outside: initial; shape-rendering: initial; size: initial; speak: initial; stop-color: initial; stop-opacity: initial; stroke: initial; stroke-dasharray: initial; stroke-dashoffset: initial; stroke-linecap: initial; stroke-linejoin: initial; stroke-miterlimit: initial; stroke-opacity: initial; stroke-width: initial; tab-size: initial; table-layout: initial; text-align: initial; text-align-last: initial; text-anchor: initial; text-combine-upright: initial; text-decoration: initial; text-decoration-skip-ink: initial; text-indent: initial; text-overflow: initial; text-shadow: initial; text-size-adjust: initial; text-transform: initial; text-underline-position: initial; top: initial; touch-action: initial; transform: initial; transform-box: initial; transform-origin: initial; transform-style: initial; user-select: initial; vector-effect: initial; vertical-align: initial; visibility: initial; -webkit-app-region: initial; border-spacing: initial; -webkit-border-image: initial; -webkit-box-align: initial; -webkit-box-decoration-break: initial; -webkit-box-direction: initial; -webkit-box-flex: initial; -webkit-box-ordinal-group: initial; -webkit-box-orient: initial; -webkit-box-pack: initial; -webkit-box-reflect: initial; -webkit-font-size-delta: initial; -webkit-highlight: initial; -webkit-hyphenate-character: initial; -webkit-line-break: initial; -webkit-line-clamp: initial; -webkit-mask-box-image: initial; -webkit-mask: initial; -webkit-mask-composite: initial; -webkit-perspective-origin-x: initial; -webkit-perspective-origin-y: initial; -webkit-print-color-adjust: initial; -webkit-rtl-ordering: initial; -webkit-ruby-position: initial; -webkit-tap-highlight-color: initial; -webkit-text-combine: initial; -webkit-text-decorations-in-effect: initial; -webkit-text-emphasis: initial; -webkit-text-emphasis-position: initial; -webkit-text-fill-color: initial; -webkit-text-security: initial; -webkit-text-stroke: initial; -webkit-transform-origin-x: initial; -webkit-transform-origin-y: initial; -webkit-transform-origin-z: initial; -webkit-user-drag: initial; -webkit-user-modify: initial; white-space: initial; widows: initial; width: initial; will-change: initial; word-break: initial; word-spacing: initial; x: initial; y: initial; z-index: initial;\"><\/div>\n<h2>La vulnerabilidad CCN-157548<\/h2>\n<p>CCN-157548 es el c\u00f3digo que se le da a esta vulnerabilidad en los <a href=\"https:\/\/cert.civis.net\/en\/index.php?action=alert&amp;param=CCN-157548   rel=\" target=\"_blank\" rel=\"noopener noreferrer\">cat\u00e1logos de vulnerabilidades<\/a>\u00a0con los que trabajan las <strong>empresas de ciberseguridad.<\/strong><\/p>\n<p><strong><a href=\"https:\/\/emariete.com\/wp-content\/uploads\/2020\/08\/Vulnerability-CCN-157548.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-235930 size-large\" src=\"https:\/\/emariete.com\/wp-content\/uploads\/2020\/08\/Vulnerability-CCN-157548-1024x449.png\" alt=\"Vulnerability CCN-157548\" width=\"1024\" height=\"449\" srcset=\"https:\/\/emariete.com\/wp-content\/uploads\/2020\/08\/Vulnerability-CCN-157548-1024x449.png 1024w, https:\/\/emariete.com\/wp-content\/uploads\/2020\/08\/Vulnerability-CCN-157548-300x132.png 300w, https:\/\/emariete.com\/wp-content\/uploads\/2020\/08\/Vulnerability-CCN-157548-768x337.png 768w, https:\/\/emariete.com\/wp-content\/uploads\/2020\/08\/Vulnerability-CCN-157548-1536x674.png 1536w, https:\/\/emariete.com\/wp-content\/uploads\/2020\/08\/Vulnerability-CCN-157548.png 1710w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/strong><\/p>\n<p>Esta vulnerabilidad\u00a0(de tipo <em>&#8216;<strong>Open Redirect<\/strong>&#8216;)<\/em> lo que permite al atacante es <strong>construir una URL con un formato determinado<\/strong> que, aparentemente, apunta a un sitio web completamente normal y legal, pero <strong>cuando el usuario pincha en ella es redirigido a la web que el atacante quiera<\/strong>.<\/p>\n<p>Aprovechar una vulnerabilidad como esta <strong>simplifica mucho los ataques de phishing, ya que<\/strong>\u00a0el nombre del servidor en el enlace manipulado es <strong>id\u00e9ntico<\/strong> al del sitio \u00ab<em>legal<\/em>\u00bb lo que hace que los enlaces tengan una <strong>apariencia inofensiva<\/strong>.<\/p>\n<p>El enlace puede contener <strong>un par\u00e1metro<\/strong> para que la aplicaci\u00f3n web <strong>redirija<\/strong> la solicitud a la URL especificada. Al modificar esa URL, que apunta al sitio malicioso, un atacante puede hacer con \u00e9xito una estafa de phishing y robar las credenciales del usuario.<\/p>\n<p>La redirecci\u00f3n abierta, u Open Redirect, <strong>es un bug en este programa<\/strong>, que permite que los atacantes redirijan a los usuarios a sitios web maliciosos.<\/p>\n<p>Un ejemplo de explotaci\u00f3n de esta vulnerabilidad, ser\u00eda en la que el atacante, para hacerse pasar por tu banco, crea un enlace como<span style=\"color: #e02b20;\"> <em>https:\/\/tubanco.com\/entrar<\/em><\/span>\u00a0y cuando el usuario pincha en \u00e9l <strong>es redirigido a la p\u00e1gina web que\u00a0<\/strong><span style=\"background-color: #ffffff; font-size: 18px; font-weight: bold;\">quiera\u00a0<\/span><strong style=\"font-size: 18px;\">el atacante<\/strong><span style=\"font-size: 18px;\">.<\/span><\/p>\n<p>Si nuestra web <span style=\"color: #e02b20;\"><em>https:\/\/<strong>miweb.com<\/strong>\/entrar<\/em><\/span><em>\u00a0<\/em>es vulnerable, <em>el malo<\/em> crear una URL como\u00a0<em><span style=\"color: #e02b20;\">https:\/\/<strong>miweb.com<\/strong>\/entrar\/redirect.php?https:\/\/elsitiodelmalo.com<\/span>\u00a0de forma que, cuando nuestro incauto navegante pinche en el enlace, creyendo que va a venir a nuestra web, <\/em><strong>realmente vaya a la web <em>del malo<\/em><\/strong> (que puede hacerse pasar <strong>por la nuestra)<\/strong>\u00a0y pida datos al usuario, por ejemplo.<\/p>\n<h2>\u00bfC\u00f3mo arreglar la vulnerabilidad de Meteotemplate?<\/h2>\n<p>Cuando descubr\u00ed la vulnerabilidad el 8 de junio de 2020 lo comuniqu\u00e9 en el <a href=\"http:\/\/www.meteotemplate.com\/forum\/viewtopic.php?f=52&amp;t=1908&amp;p=9448#p9448\" target=\"_blank\" rel=\"noopener noreferrer\">foro oficial de Meteotemplate<\/a> con la esperanza de que <strong>Jachym<\/strong>, su creador, lo pudiera arreglar, pero, desgraciadamente, <strong>no hubo respuesta<\/strong>, ni por parte de Jachym ni de ning\u00fan otro usuario (parece que Jachym ha borrado mi post).<\/p>\n<p>Mes y medio m\u00e1s tarde, el <strong>21 de agosto de 2020<\/strong>, insist\u00ed de nuevo a\u00f1adiendo m\u00e1s informaci\u00f3n, que hab\u00eda descubierto, y publicando una lista de sitios afectados, para que vieran que eran miles. <strong>Tampoco hubo ninguna respuesta.<\/strong><\/p>\n<p>El 25 de agosto opt\u00e9 por <a title=\"ir al hilo de Meteotemplate en el foro Meteoclimatic\" href=\"https:\/\/forum.meteoclimatic.net\/index.php\/topic,8.msg23677.html#msg23677\" target=\"_blank\" rel=\"noopener noreferrer\">hacerlo p\u00fablico en Meteoclimatic<\/a>, que es <strong>el mayor foro de aficionados a la meteorolog\u00eda de Espa\u00f1a<\/strong>, y donde muchos de ellos utilizan este software. Inmediatamente prestaron atenci\u00f3n y <strong>en menos de 24 horas, el usuario <span style=\"font-size: large;\"><a href=\"https:\/\/forum.meteoclimatic.net\/index.php\/topic,8.msg23699.html#msg23699\"><span style=\"text-decoration: underline;\">jmviper<\/span><\/a><\/span> public\u00f3<\/strong><strong style=\"font-size: 18px;\">\u00a0el c\u00f3digo de redirect.php,<\/strong><span style=\"font-size: 18px; background-color: #ffffff;\">\u00a0<\/span><span style=\"font-size: 18px; background-color: #ffffff;\">que pod\u00e9is ver debajo,\u00a0<\/span><span style=\"font-size: 18px;\">arreglando la vulnerabilidad en Meteotemplate.<\/span><\/p>\n<p><script src=\"https:\/\/gist.github.com\/melkati\/62cd3153b3cd81c796287841aafab6ca.js\"><\/script><\/p>\n<h2>El impacto en el SEO<\/h2>\n<h3>\u00bfQu\u00e9 es el SEO?<\/h3>\n<p>El SEO (Search Engine Optimization) es la ciencia\/arte de <strong>optimizar las p\u00e1ginas web para posicionarlas en los buscadores<\/strong>.<\/p>\n<p>Se trata de conseguir que cuando un usuario busque algo en Google, o cualquier otro buscador, la p\u00e1gina aparezca en los resultados <strong>lo m\u00e1s arriba posible<\/strong>.<\/p>\n<p>Lo que hay que tener presente, es que para Google lo m\u00e1s importante es <strong>resolver la intenci\u00f3n de b\u00fasqueda<\/strong> de los usuarios.<\/p>\n<p>Pero, \u00bfC\u00f3mo determina Google <strong>qu\u00e9 p\u00e1ginas deben ser puestas en primer lugar\u00a0<\/strong>en los resultados?<\/p>\n<p>L\u00f3gicamente, Google tiene <strong>muchas cosas<\/strong> en cuenta a la hora de decidir qu\u00e9 p\u00e1ginas incluye en los resultados de las b\u00fasquedas y cu\u00e1les pone primero en esos resultados.<\/p>\n<p>Por supuesto uno de los factores m\u00e1s importantes es <strong>el contenido<\/strong> de las p\u00e1ginas, adem\u00e1s del <strong>t\u00edtulo de la p\u00e1gina<\/strong>, pero, adem\u00e1s, para saber qu\u00e9 p\u00e1ginas son de verdadera <strong>calidad<\/strong> y pueden gustar m\u00e1s a los usuarios, se basa en otras <strong><em>se\u00f1ales<\/em>\u00a0que pueden ser positivas o negativas<\/strong> c\u00f3mo:<\/p>\n<h3>Se\u00f1ales positivas para Google<\/h3>\n<p>Son las que indican a Google que la p\u00e1gina puede ser <strong>interesante, gustar<\/strong> a los usuarios y resolver la intenci\u00f3n de b\u00fasqueda.<\/p>\n<ul>\n<li><strong>\u00bfQu\u00e9 otras p\u00e1ginas enlazan a esta?<\/strong> Si otras muchas p\u00e1ginas enlazan a esta puede querer decir que su contenido es importante<\/li>\n<li><strong>\u00bfDe qu\u00e9 tem\u00e1tica son las p\u00e1ginas que enlazan a esta?<\/strong> Si las p\u00e1ginas que enlazan a esta son de la misma tem\u00e1tica que la pregunta, es m\u00e1s probable que los contenidos sean relevantes para el usuario<\/li>\n<li><strong>\u00bfQu\u00e9 prestigio tienen otras p\u00e1ginas que enlazan a esta?<\/strong> No es lo mismo que enlace a la p\u00e1gina Perico el de los palotes (me refiero a una p\u00e1gina sin ninguna importancia, con poco contenido, a la que no enlaza casi nadie, etc.) a que lo haga un <strong>peri\u00f3dico importante o una p\u00e1gina con gran autoridad<\/strong> (especialmente si es de la misma tem\u00e1tica).<\/li>\n<\/ul>\n<h3>Se\u00f1ales negativas para Google<\/h3>\n<p>Igual que Google tiene en cuenta esas se\u00f1ales, que le indican que una p\u00e1gina tiene ese \u00ab<em>prestigio<\/em>\u00ab, hay otras se\u00f1ales que le indican que la p\u00e1gina puede tener un <strong>contenido malo, de poco inter\u00e9s, no original<\/strong> (copiado de otros sitios) e incluso que sus <strong>contenidos sean poco honestos o, directamente, ilegales<\/strong>.<\/p>\n<ul>\n<li><strong>\u00bfRecibe la p\u00e1gina enlaces desde sitios sospechosos?<\/strong> Si la p\u00e1gina recibe enlaces desde sitios de porno, ventas ilegales, venta de productos ilegales, etc. <strong>es m\u00e1s que posible que Google penalice esta p\u00e1gina<\/strong> y que no aparezca en los resultados de b\u00fasqueda (aunque su contenido sea completamente limpio, legal y correcto). Al fin y al cabo, a Google le gusta que sus resultados sean aptos para todos los p\u00fablicos (aun tratando de cumplir la intenci\u00f3n de b\u00fasqueda de los que quieren otra cosa).<\/li>\n<li><strong>\u00bfTiene la p\u00e1gina frecuentes errores de ortograf\u00eda sint\u00e1cticos, de concordancia, o similares?<\/strong> Esto puede indicarle que su contenido es de baja calidad, que ha sido generado o traducido autom\u00e1ticamente.<\/li>\n<li><strong>\u00bfSe actualiza la p\u00e1gina con frecuencia?<\/strong> A Google le gustan las p\u00e1ginas que se actualizan frecuentemente y tienen <strong>contenidos frescos<\/strong>, al igual que a la mayor\u00eda de los usuarios.<\/li>\n<\/ul>\n<h3>Lo que Google ve<\/h3>\n<p>Si nuestra p\u00e1gina es explotable por una vulnerabilidad de este tipo, pronto <strong>muchos ciberdelincuentes la usar\u00e1n<\/strong> para redirigir a los usuarios a otros sitios, creando <strong>m\u00faltiples enlaces en muchos sitios,<\/strong> foros, p\u00e1ginas de todo tipo, publicidad, etc. creando enlaces como\u00a0<em><a href=\"https:\/\/miweb.com\/entrar\/redirect.php?https:\/\/elsitiodelmalo.com\"><span style=\"color: #e02b20;\">https:\/\/<strong>miweb.com<\/strong>\/entrar\/redirect.php?https:\/\/elsitiodelmalo.com<\/span><\/a>\u00a0<\/em><\/p>\n<p>Hay que tener en cuenta que los ciberdelincuentes, en muchos casos, utilizan herramientas autom\u00e1ticas para crear esos enlaces por lo que ser\u00e1 normal que nuestra web reciba cientos o miles de enlaces maliciosos en muy poco tiempo.<\/p>\n<p><strong>Lo que Google ver\u00e1 es que muchos sitios dedicados a sexo, malware, phishing, actividades ilegales, etc. enlazan a nuestra p\u00e1gina, no le gustar\u00e1n \u00ab<em>nuestras amistades<\/em>\u00bb y puede penalizar nuestra p\u00e1gina por ello haciendo que la p\u00e1gina no aparezca en los resultados del buscador (o al menos no en las primeras posiciones).<\/strong><\/p>\n<h3>Datos reales de penalizaci\u00f3n de Google<\/h3>\n<p>En la siguiente tabla podemos ver los datos de <strong>probabilidad de penalizaci\u00f3n<\/strong> por parte de Google, calculada por la herramienta <a href=\"https:\/\/moz.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">MOZ<\/a>, en sitios web que utilizan Meteotemplate.<\/p>\n<p>He limitado la lista a los sitios que tienen una posibilidad superior al 50%, hay muchos m\u00e1s con valores m\u00e1s bajos.<\/p>\n<p>Por privacidad y seguridad he eliminado parte de la URL.<\/p>\n<div class=\"essb_break_scroll\"><\/div>","protected":false},"excerpt":{"rendered":"<p>Vulnerability in Meteotemplate What is Meteotemplate? Meteotemplate is a software package, or template, that hundreds of amateur weather stations around the world use to create comprehensive and eye-catching web pages with weather data. My weather station has been sending its data to the internet for several years with the help of a Raspberry Pi, ... <a title=\"Vulnerability in Meteotemplate and how it affects SEO\" class=\"read-more\" href=\"https:\/\/emariete.com\/en\/vulnerabilidad-meteotemplate-como-afecta-seo\/\" aria-label=\"Read more about Meteotemplate vulnerability and how it affects SEO\">Read more<\/a><\/p>","protected":false},"author":1,"featured_media":243002,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","_lmt_disableupdate":"yes","_lmt_disable":"no","footnotes":""},"categories":[15],"tags":[54],"class_list":["post-235875","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-estacion-meteorologica","tag-weewx"],"modified_by":"Mariete","uagb_featured_image_src":{"full":["https:\/\/emariete.com\/wp-content\/uploads\/2020\/08\/VULNERABILIDAD-EN-METEOTEMPLATE_upscale.jpg",1680,945,false],"thumbnail":["https:\/\/emariete.com\/wp-content\/uploads\/2020\/08\/VULNERABILIDAD-EN-METEOTEMPLATE_upscale-150x150.jpg",150,150,true],"medium":["https:\/\/emariete.com\/wp-content\/uploads\/2020\/08\/VULNERABILIDAD-EN-METEOTEMPLATE_upscale-300x169.jpg",300,169,true],"medium_large":["https:\/\/emariete.com\/wp-content\/uploads\/2020\/08\/VULNERABILIDAD-EN-METEOTEMPLATE_upscale-768x432.jpg",768,432,true],"large":["https:\/\/emariete.com\/wp-content\/uploads\/2020\/08\/VULNERABILIDAD-EN-METEOTEMPLATE_upscale-1024x576.jpg",1024,576,true],"1536x1536":["https:\/\/emariete.com\/wp-content\/uploads\/2020\/08\/VULNERABILIDAD-EN-METEOTEMPLATE_upscale-1536x864.jpg",1536,864,true],"2048x2048":["https:\/\/emariete.com\/wp-content\/uploads\/2020\/08\/VULNERABILIDAD-EN-METEOTEMPLATE_upscale.jpg",1680,945,false],"trp-custom-language-flag":["https:\/\/emariete.com\/wp-content\/uploads\/2020\/08\/VULNERABILIDAD-EN-METEOTEMPLATE_upscale-18x10.jpg",18,10,true]},"uagb_author_info":{"display_name":"Mariete","author_link":"https:\/\/emariete.com\/en\/author\/admin_xlyz052h\/"},"uagb_comment_info":0,"uagb_excerpt":"Vulnerabilidad en Meteotemplate \u00bfQu\u00e9 es Meteotemplate? Meteotemplate es un paquete de software, o plantilla, que cientos de estaciones meteorol\u00f3gicas de aficionados de todo el mundo utilizan para crear completas y vistosas p\u00e1ginas web con datos meteorol\u00f3gicos. Mi estaci\u00f3n meteorol\u00f3gica env\u00eda sus datos a internet, desde hace varios a\u00f1os con la ayuda de una Raspberry Pi,&hellip;","_links":{"self":[{"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/posts\/235875","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/comments?post=235875"}],"version-history":[{"count":2,"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/posts\/235875\/revisions"}],"predecessor-version":[{"id":242981,"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/posts\/235875\/revisions\/242981"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/media\/243002"}],"wp:attachment":[{"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/media?parent=235875"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/categories?post=235875"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/tags?post=235875"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}