From a55b575e8089ee6cab7c5c262a7e6db55d0e34d6 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 14:46:50 +0100 Subject: unslug es: move --- .../security/csp/csp_policy_directives/index.html | 709 --------------------- files/es/web/security/csp/index.html | 39 -- .../introducing_content_security_policy/index.html | 57 -- .../es/web/security/same-origin_policy/index.html | 269 ++++++++ .../web/security/same-origin_politica/index.html | 269 -------- .../index.html | 77 --- .../turning_off_form_autocompletion/index.html | 77 +++ 7 files changed, 346 insertions(+), 1151 deletions(-) delete mode 100644 files/es/web/security/csp/csp_policy_directives/index.html delete mode 100644 files/es/web/security/csp/index.html delete mode 100644 files/es/web/security/csp/introducing_content_security_policy/index.html create mode 100644 files/es/web/security/same-origin_policy/index.html delete mode 100644 files/es/web/security/same-origin_politica/index.html delete mode 100644 files/es/web/security/securing_your_site/desactivar_autocompletado_formulario/index.html create mode 100644 files/es/web/security/securing_your_site/turning_off_form_autocompletion/index.html (limited to 'files/es/web/security') diff --git a/files/es/web/security/csp/csp_policy_directives/index.html b/files/es/web/security/csp/csp_policy_directives/index.html deleted file mode 100644 index c2f9c5a628..0000000000 --- a/files/es/web/security/csp/csp_policy_directives/index.html +++ /dev/null @@ -1,709 +0,0 @@ ---- -title: Políticas Directivas CSP -slug: Web/Security/CSP/CSP_policy_directives -translation_of: Web/HTTP/Headers/Content-Security-Policy -translation_of_original: Web/Security/CSP/CSP_policy_directives ---- -

 

- -

Hay varios ámbitos de las políticas que pueden ser definidas por los administradores de las páginas web usando las Normas de Seguridad de Contenido o CSP por sus siglas en ingles. Cualquier combinación de estas políticas puede ser utilizada para satisfacer las necesidades de su sitio web, no es necesario especificar todas ellas..

- -

Fuentes de contenido

- -

La mayoría de las políticas directivas necesitan de una o más fuentes de contenido. Una fuente de contenido es una cadena que indica una posible fuente de donde el contenido puede ser descargado.

- -

Listas de fuentes

- -

Una lista de fuentes es un cadena que especifica uno o más hosts de internet o direcciones IP, así como un esquema de URL opcional y/o número de puerto. La dirección del sitio puede incluir un comodín líder (el carácter asterisco, '*'), y puedes usar un comodín (de nuevo, '*') como el número de puerto, indicando que todos los puertos legales son válidos para la fuente. Los hosts son delimitados por espacio.

- -

Las expresiones validas del host son:

- -
-
http://*.foo.com
-
Junta todos los intentos de carga desde cualquier subdominio de foo.com usando el sistema URL http:.
-
mail.foo.com:443
-
Junta todos los intentos de acceso al puerto 443 en mail.foo.com.
-
https://store.foo.com
-
Junta todos los intentos para acceder store.foo.com usando https:.
-
- -

Si un número de puerto no está especificado, el navegador usara el número de puerto predeterminado para el sistema especificado. Si no hay sistema especificado, el mismo sistema que ha sido usado para acceder al documento protegido será usado.

- -
-
- -

Palabras claves

- -

También existen algunas palabras claves disponibles para describir clases especiales de fuentes de contenido. Estas palabras son las siguientes:

- -
-
'none'
-
Se refiere al conjunto vacío, es decir, no hay URLs que coincidan. Las comillas simples son necesarias.
-
'self'
-
Se refiere al origen del cual los documentos protegidos están siendo enviados, incluyendo el mismo sistema de URL y numero de puerto. Las comillas simples deben ser incluidas. Algunos navegadores excluyen específicamente blob y filesystem de las políticas directivas. Sitios que necesitan permitir  este tipo de contenido puede especificarlos usando el Data attribute.
-
'unsafe-inline'
-
Permite el uso de recursos alineados como elementos alineados {{ HTMLElement("script") }} , javascript: URLs, controladores de eventos alineados e elementos alineados {{ HTMLElement("style") }} . Las comillas simples deben ser incluidas.
-
'unsafe-eval'
-
Permite el uso de eval()y métodos similares para la creación de códigos desde las cadenas de caracteres. Las comillas simples deben ser incluidas.
-
- -
Nota: 'unsafe-inline' y 'unsafe-eval' son inseguros y pueden hacer de tu página web vulnerable contra cross-site scripting.
- -

Ejemplo, puedes especificar que el contenido sea cargado desde el origen del documento, así como desde trustedscripts.foo.com de la siguiente manera:

- -
Content-Security-Policy: default-src 'self' trustedscripts.foo.com
-
- -
-
- -

Data

- -
Nota: data: URIs son inseguras y pueden hacer de tu página web vulnerable contra cross-site scripting si es permitido por las fuentes del script.
- -
-
data:
-
Permite que data: URIs sea usada como fuente de contenido. Esto es inseguro y un atacante puede insertar data: URIs arbitrarias. Utilízala con moderación y definitivamente no para los scripts.
-
mediastream:
-
Permite que mediastream: URIs sea usada como fuente de contenido.
-
blob:
-
Permite que blob: URIs sea usada como fuente de contenido.
-
filesystem:
-
Permite que filesystem: URIs sea usada como fuente de contenido.
-
- -
Content-Security-Policy: default-src 'self'; img-src 'self' data: blob: filesystem:; media-src mediastream:
-
- -

Políticas directivas soportadas

- -

Las siguientes políticas directivas están disponibles para controlar la política de seguridad para varias ares de las políticas.

- -

base-uri

- -

La directiva >base-uri define las URLs que un agente usuario puede usar como el documento URL base. Si este valor no está presente, cualquier URL está permitido. Si esta directiva no está presente, el agente usuario usara el valor en el elemento base.

- -
base-uri source-list
- -

child-src

- -

La directiva child-src define las fuentes válidas para los trabajadores de la web y contextos de navegación anidados cargados utilizando elementos tales como {{ HTMLElement("frame") }} y {{ HTMLElement("iframe") }}. Esta opción es preferida sobre la directiva frame-src, la cual es obsoleta. Para los trabajadores, las solicitudes no conformes son tratadas como errores de red fatales por el agente usuario.

- -
Nota: Si esta directiva no está presente, el agente usuario buscara la directiva por defecto default-src.
- -
​child-src source-list
- -

connect-src

- -

La directiva connect-src define fuentes válidas para fetch, XMLHttpRequest, WebSocket y conecciones EventSource.

- -
Nota: Si esta directiva no está presente, el agente usuario buscara la directiva por defecto default-src.
- -
Nota: Antes de la versión Firefox 23, xhr-src  era utilizado en lugar de la directiva connect-src y solo restringía el uso de XMLHttpRequest.
- -
connect-src source-list
- -

default-src

- -

La directiva por defecto default-src define la política de seguridad para los tipos de contenidos que no están expresamente señalados por otras directivas. Esta directiva abarca las siguientes directivas:

- - - -
default-src source-list
- -

font-src

- -

La directivas font-src especifica las fuentes válidas para los tipos de letras cargadas usando {{ cssxref("@font-face") }}.

- -
Nota: Si esta directiva no está presente, el agente usuario buscara la directiva por defecto default-src.
- -
font-src source-list
- -

form-action

- -

La directiva form-action{{experimental_inline}} especifica criterios de valoración válidos para las sumisiones {{ HTMLElement("form") }}.

- -
form-action >source-list
- -

frame-ancestors

- -

La directiva frame-ancestors{{experimental_inline}} especifica padres validos que pueden incustrar una pagina usando elementos  {{ HTMLElement("frame") }} y {{ HTMLElement("frame") }}. Esta directiva no esta soportada en el elemento <meta> o por la cabecera Content-Security-Policy-Report-Only.

- -
frame-ancestors source-list
- -

frame-src {{obsolete_inline}}

- -

The frame-src directive specifies valid sources for web workers and nested browsing contexts loading using elements such as >{{ HTMLElement("frame") }} and {{ HTMLElement("iframe") }}.>

- -
-
Note: This directive is deprecated. Use child-src instead.
-
- -
frame-src source-list
- -

img-src

- -

The img-src directive specifies valid sources of images and favicons. 

- -
Note: If this directive is absent, the user agent will look for the default-src directive.
- -
img-src source-list
- -

manifest-src

- -

The manifest-src directive specifies which manifest can be applied to the resource.

- -
Note: If this directive is absent, the user agent will look for the default-src directive.
- -
manifest-src source-list
- -

media-src

- -

The media-src directive specifies valid sources for loading media using the {{ HTMLElement("audio") }} and {{ HTMLElement("video") }} elements.

- -
Note: If this directive is absent, the user agent will look for the default-src directive.
- -
media-src source-list
- -

object-src

- -

The object-src directive specifies valid sources for the {{ HTMLElement("object") }}, {{ HTMLElement("embed") }}, and {{ HTMLElement("applet") }} elements. 

- -
Note: If this directive is absent, the user agent will look for the default-src directive.
- -
object-src source-list
- -

plugin-types

- -

The plugin-types directive specifies the valid plugins that the user agent may invoke.

- -
plugin-types type-list
- -

referrer

- -

The referrer directive specifies information in the referrer header for links away from a page.

- -
​referrer value
- -

reflected-xss

- -

The reflected-xss directive instructs a user agent to activate or deactivate any heuristics used to filter or block reflected cross-site scripting attacks. Valid values are allow, block, and filter. This directive is not supported in the <meta> element.

- -
Note: This directive is ignored if it is contained in a meta element.
- -
reflected-xss value
- -

report-uri

- -

The report-uri directive instructs the user agent to report attempts to violate the Content Security Policy. These violation reports consist of JSON documents sent via an HTTP POST request to the specified URI. See Using CSP violation reports for details. This directive is not supported in the <meta> element.

- -
report-uri uri
- -

sandbox

- -

The sandbox directive applies restrictions to a page's actions including preventing popups, preventing the execution of plugins and scripts, and enforcing a same-origin policy. This directive is not supported in the <meta> element or by the Content-Security-policy-Report-Only header field.

- -
sandbox value
- -

script-src

- -

The script-src directive specifies valid sources for JavaScript. When either the script-src or the default-src directive is included, inline script and eval() are disabled unless you specify 'unsafe-inline' and 'unsafe-eval', respectively.

- -
Note: If this directive is absent the user agent will look for the default-src directive.
- -
script-src source-list
- -

style-src

- -

The style-src directive specifies valid sources for stylesheets. This includes both externally-loaded stylesheets and inline use of the {{ HTMLElement("style") }} element and HTML style attributes. Stylesheets from sources that aren't included in the source list are not requested or loaded. When either the style-src or the default-src directive is included, inline use of the {{ HTMLElement("style") }} element and HTML style attributes are disabled unless you specify 'unsafe-inline'.

- -
Note: If this directive is absent, the user agent will look for the default-src directive.
- -
style-src source-list
- -
Note: Firefox currently requires using the same URL scheme and port for the report-uri as the content being protected by Content Security Policy.
- -

upgrade-insecure-requests

- -

The upgrade-insecure-requests directive instructs user agents to treat all of a site's unsecure URL's (those serverd over HTTP) as though they have been replaced with secure URL's (those served over HTTPS). This directive is intended for web sites with large numbers of unsecure legacy URL's that need to be rewritten. 

- -

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{ specName("Upgrade Insecure Requests")}}{{Spec2('Upgrade Insecure Requests')}}Adds upgrade-insecure-requests.
{{ specName("CSP 1.1") }}{{Spec2('CSP 1.1')}}Adds base-uri, child-src, form-action, frame-ancestors, plugin-types, referrer, reflected-xss, and report-uri. Deprecates frame-src.
{{ specName("CSP 1.0") }}{{Spec2('CSP 1.0')}}Defines connect-src, >default-src, >font-src, >frame-src, >img-src, >media-src, >objects-src, >report-uri,>sandbox, >script-src, and >style-src.>
- -

Browser compatibility

- -

{{CompatibilityTable}}

- -
{{CompatUnknown}} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureChrome{{ref("2")}}Firefox (Gecko)Internet ExplorerOperaSafari
Basic support -

{{CompatChrome(14.0)}} (X-Webkit-CSP)

- -

{{CompatChrome(25.0)}}

-
-

{{CompatGeckoDesktop("2.0")}} (X-Content-Security-Policy)

- -

{{CompatGeckoDesktop("23.0")}}

-
Edge15 -

6 (X-Webkit-CSP)

- -

7

-
base-uri{{CompatChrome(40.0)}}{{CompatGeckoDesktop("35.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
child-src{{CompatChrome(40.0)}}{{CompatGeckoDesktop("23.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
connect-src{{CompatVersionUnknown}}{{CompatGeckoDesktop("23.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
default-src{{CompatVersionUnknown}}{{CompatGeckoDesktop("23.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
font-src{{CompatVersionUnknown}}{{CompatGeckoDesktop("23.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
form-action{{CompatChrome(40.0)}}{{CompatGeckoDesktop("36.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
frame-ancestors{{CompatChrome(40.0)}}{{CompatGeckoDesktop("33.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
frame-src{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
img-src{{CompatVersionUnknown}}{{CompatGeckoDesktop("23.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
manifest-src{{CompatVersionUnknown}}{{CompatGeckoDesktop("41.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
media-src{{CompatVersionUnknown}}{{CompatGeckoDesktop("23.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
object-src{{CompatVersionUnknown}}{{CompatGeckoDesktop("23.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
plugin-types{{CompatChrome(40.0)}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}
referrer{{CompatVersionUnknown}}{{CompatGeckoDesktop("37.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
reflected-xss{{CompatVersionUnknown}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
report-uri{{CompatChrome(40.0)}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
sandbox{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
script-src{{CompatVersionUnknown}}{{CompatGeckoDesktop("23.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
style-src{{CompatVersionUnknown}}{{CompatGeckoDesktop("23.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-

upgrade-insecure-requests

-
-

{{CompatChrome(43.0)}}

-
{{CompatGeckoDesktop("42.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroid Browser{{ref("1")}}Android Webview{{ref("2")}}Firefox Mobile (Gecko)IE MobileOpera MobileSafari MobileChrome for Mobile{{ref("2")}}
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("2.0")}}{{CompatUnknown}}{{CompatUnknown}}iOS 7.1{{CompatVersionUnknown}}
base-uri{{CompatNo}}{{CompatChrome(40.0)}}{{CompatGeckoMobile("35.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatChrome(40.0)}}
child-src{{CompatNo}}{{CompatChrome(40.0)}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatChrome(40.0)}}
connect-src{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}
default-src{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}
font-src{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}
form-action {{CompatNo}}{{CompatChrome(40.0)}}{{CompatGeckoMobile("36.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatChrome(40.0)}}
frame-ancestors {{CompatNo}}{{CompatChrome(40.0)}}{{CompatGeckoMobile("33.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatChrome(40.0)}}
frame-src{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}
img-src{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}
manifest-src{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoDesktop("41.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
media-src{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}
object-src{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}
plugin-types{{CompatNo}}{{CompatChrome(40.0)}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatChrome(40.0)}}
referrer{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("37.0")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}
reflected-xss{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}
report-uri{{CompatNo}}{{CompatChrome(40.0)}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatChrome(40.0)}}
sandbox{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}
script-src{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}
style-src{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}
upgrade-insecure-requests{{CompatGeckoMobile(42)}}{{CompatChrome(43.0)}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatChrome(43.0)}}
-
- -

 

- -

Notes

- -

{{ref("1")}} Deprecated since Android 4.0.

- -

{{ref("2")}} Starting with version {{CompatChrome(45.0)}}, Chrome excludes blob and filesystem from source directives. Sites needing to allow these content types can specify them using the Data attribute.

- -

See also

- - diff --git a/files/es/web/security/csp/index.html b/files/es/web/security/csp/index.html deleted file mode 100644 index 6fcf1a2ff3..0000000000 --- a/files/es/web/security/csp/index.html +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: CSP (Políticas de Seguridad de Contenido) -slug: Web/Security/CSP -tags: - - Documento - - Referencia -translation_of: Web/HTTP/CSP -translation_of_original: Web/Security/CSP ---- -
{{gecko_minversion_header("2.0")}}
- -

Políticas de Seguridad de Contenido (CSP) es una capa de seguridad adicional que ayuda a detectar y mitigar cierto tipo de ataques, incluyendo Cross-Site Scripting (XSS) y ataques de inyección de datos. Estos ataques son usados para cualquier cosa desde robo de datos hasta la alteración de su sitio o distribución de malware.

- -

Aunque las Políticas de Seguridad de Contenido fueron incluidas desde Firefox 4, esa implementación, usando la cabecera X-Content-Security-Policy, es anterior a la existencia de una especificacion formal de CSP. Firefox 23 contiene una implementación actualizada de CSP que usa la cabecera Content-Security-Policy sin prefijo y las directivas como están descritas en la especificación W3C CSP 1.0.

- -

Tópicos de Políticas de Seguridad de Contenido

- -
-
Introducción a Políticas de Seguridad de Contenido
-
Un resumen de que es y como CSP puede hacer su sitio mas seguro.
-
Directivas de Políticas CSP
-
Una referencia de las directivas de políticas CSP.
-
Usando Políticas de Seguridad de Contenido
-
Puede ajustar el comportamiento de CSP configurando el conjunto de las políticas. Esto le permite reducir y ajustar la seguridad para tipos individuales de recursos, basado en las necesidades de su sitio. Este artículo describe como configurar CSP, asi como también habilitarlo para el uso en su sitio.
-
Usando reportes de violación de CSP
-
Como usar los reportes de violación de las Políticas de Seguridad de Contenido para monitorear los intentos de ataque a su sitio y a sus usuarios.
-
Restricciones CSP por defecto
-
Detalles acerca de las restricciones por defecto reforzadas por CSP.
-
- -

Ver también

- - diff --git a/files/es/web/security/csp/introducing_content_security_policy/index.html b/files/es/web/security/csp/introducing_content_security_policy/index.html deleted file mode 100644 index 58960c7798..0000000000 --- a/files/es/web/security/csp/introducing_content_security_policy/index.html +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Introducción a Políticas de Seguridad de Contenido -slug: Web/Security/CSP/Introducing_Content_Security_Policy -tags: - - Documento - - Políticas de Seguridad de Contenido - - Referencia - - Seguridad -translation_of: Web/HTTP/CSP -translation_of_original: Web/Security/CSP/Introducing_Content_Security_Policy ---- -

{{ gecko_minversion_header("2") }}

- -

Políticas de Seguridad de Contenido (CSP) es una capa de seguridad adicional que ayuda a detectar y mitigar cierto tipo de ataques, incluyendo Cross-Site Scripting (XSS) y ataques de inyección de datos. Estos ataques son usados para cualquier cosa desde el robo de datos hasta hasta la alteración de su sitio o la distribución de malware.

- -

CSP esta diseñado para ser completamente compatible hacia atras; los navegadores web que no lo soporten todavía pueden trabajar con servidores que las implementen, y viceversa. Los navegadores web que no soporten CSP simplemente la ignoran, funcionando como es normal, usando la política de mismo origen por defecto para contenido web. Si el sitio no tiene la cabecera CSP, los navegadores web usan en su lugar la política de mismo origen.

- -

Habilitar CSP tan fácil como configurar su servidor web para retornar la cabecera HTTP Content-Security-Policy. (Antes de Firefox 23, la cabecera X-Content-Security-Policy era usada). Ver Usando Políticas de Seguridad de Contenido para detalles de como configurar y habilitar CSP.

- -
Nota: El estándar de Políticas de Seguridad de Contenido especifica que un elemento {{ HTMLElement("meta") }} puede ser usado para configurar una política, pero esta característica todavía no está soportada en Firefox. El soporte para esta característica será añadida según bug 663570.
- -

Mitigando cross site scripting

- -

Un objetivo primario de CSP es mitigar y reportar ataques XSS. Los ataques XSS explotan la confianza de los navegadores web en el contenido recibido del servidor. Los scripts maliciosos son ejecutados por la victima del navegador web por que éste confía en el origen del contenido, aún cuando no viene desde donde parece venir.

- -

CSP hace posible a los administradores de servidores reducir o eliminar los vectores por los cuales un ataque XSS puede ocurrir especificando los dominios que el navegador web debe considerar orígenes válidos de scripts ejecutables. Un navegador web compatible con CSP entonces solo ejecutará scripts cargados en archivos fuente recibidos de aquellos dominios permitidos, ignorando todos los demás scripts (incluyendo scripts en línea y atributos HTML de manejo de eventos).

- -

Como una última forma de protección, los sitios que no deseen permitir nunca la ejecución de scripts pueden optar por deshabilitar globalmente la ejecución de scripts.

- -

Mitigando ataques de packet sniffing

- -

En adición a la restricción de los dominos desde los cuales el contenido puede ser cargado, el servidor puede especificar que protocolos son permitidos para su uso; por ejemplo (e idealmente, desde un punto de vista de seguridad), un servidor puede especificar que todo el contenido debe ser cargado usando HTTPS.

- -
Nota: Una estrategia de transmisión segura de datos incluye no solo reforzar HTTPS para la transferencia de datos, sino tambien marcar todas las cookies con indicadores seguros y proveer redirecciones automáticas desde páginas HTTP a sus contrapartes en HTTPS.
- -
Nota: Los sitios pueden usar tambien la cabecera HTTP  Strict-Transport-Security para asegurarse de que los navegadores web se conecten solo a traves de un canal encriptado.
- -

Ver también

- - - -

Especificación

- - - -
-

{{ languages( { "ja": "ja/Introducing_Content_Security_Policy" } ) }}

-
- -

 

diff --git a/files/es/web/security/same-origin_policy/index.html b/files/es/web/security/same-origin_policy/index.html new file mode 100644 index 0000000000..18e2e759b1 --- /dev/null +++ b/files/es/web/security/same-origin_policy/index.html @@ -0,0 +1,269 @@ +--- +title: Política Same-origin +slug: Web/Security/Same-origin_politica +tags: + - CORS + - JavaScript + - Mismo-Origen + - Política Same-Origin + - Seguridad +translation_of: Web/Security/Same-origin_policy +--- +

La política same-origin (mismo-origen) restringe cómo un documento o script cargado desde un origen puede interactuar con un recurso de otro origen. Es un mecanismo de seguridad crítico para aislar documentos potencialmente maliciosos.

+ +

Definición de origen

+ +

Dos páginas tienen el mismo origen si el {{Glossary("protocol","protocolo")}}, {{Glossary("port","puerto")}} (si es especificado) y {{Glossary("host","anfitrión")}} son los mismos para ambas páginas. Verá esto a veces referido como la "tupla esquema/anfitrión/puerto" (donde una "tupla" es un conjunto de componentes que juntos forman un todo).

+ +

La siguiente tabla muestra ejemplos de comparaciones de origenes para la URL http://store.company.com/dir/page.html:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
URLResultadoRazón
http://store.company.com/dir2/other.htmlMismo origenSolo la ruta difiere
http://store.company.com/dir/inner/another.htmlMismo origenSolo la ruta difiere
https://store.company.com/secure.htmlFalloDiferente protocolo
http://store.company.com:81/dir/etc.htmlFalloDiferente puerto
http://news.company.com/dir/other.htmlFalloDiferente host
+ +

Ver también definición de origen para file: URLs, puesto que su comparación es más complicada.

+ +

Orígenes heredados

+ +

Los scripts ejecutados desde páginas con una URL about:blank o javascript: heredan el origen del documento que contiene esa URL, puesto que esos tipos de URLs no contienen información sobre un servidor de origen.

+ +
+

Por ejemplo, about:blank a menudo se usa como URL de nuevas ventanas popup en las que el script padre escribe contenido (por ejemplo mediante el mecanismo {{domxref("Window.open()")}}). Si este popup además contiene JavaScript, ese escript heredará el mismo origen que el script que lo ha creado.

+
+ +
+

data: URLs obtienen un nuevo, vacío, contexto de seguridad.

+
+ +

Excepciones en Internet Explorer

+ +

Internet Explorer tiene dos excepciones mayores en lo que se refiere a la política same-origin

+ + + +

Estas excepciones no son estándar y no están soportadas en otro navegador pero son útiles cuando se desarrolla una app para Windows RT (o) basada en IE.

+ +

Cambiando el origen

+ +

Una página puede cambiar su propio origen con algunas limitaciones. Un script puede asignar el valor de {{domxref("document.domain")}} al dominio actual o a un superdominio del dominio actual. Si se asigna a un superdominio del dominio actual, el dominio más corto es usado para las posteriores comprobaciones de origen. Por ejemplo, sea un script en http://store.company.com/dir/other.html que ejecuta lo siguiente:

+ +
document.domain = "company.com";
+
+ +

Tras su ejecución, la página puede pasar la comprobación de origen con http://company.com/dir/page.html (asumiendo que http://company.com/dir/page.html asigna su document.domain a "company.com" para indicar que desea hacerlo - ver {{domxref("document.domain")}} para más información). Sin embargo, company.com no podría asignar document.domain a othercompany.com ya que no es un superdominio de company.com.

+ +

El número de puerto es guardado de forma separada por el navegador. Cualquier llamada al setter, incluyendo document.domain = document.domain causa que el número del puerto sea sobrescrito con null. Por lo tanto no se puede hacer que company.com:8080 hable con  company.com solo asignando document.domain = "company.com" en el primero. Tiene que ser asignado en ambos para que los números de puerto sean null.

+ +
+

Nota: Cuando se use document.domain para permitir a un subdominio acceder a su padre de forma segura, necesitas asignar document.domain al mismo valor tanto en el padre como en el subdominio. Esto es necesario incluso si solo se asigna el dominio padre a su valor original. Un fallo al hacer esto puede resultar en errores de permisos.

+
+ +

Acceso de red de origen cruzado

+ +

La política de mismo origen controla las interacciones entre dos orígenes diferentes, como cuando se usa {{domxref("XMLHttpRequest")}} o un elemento {{htmlelement("img")}}. Estas interacciones habitualmente se ubican en tres categorías:

+ + + +

Aquí hay algunos ejemplos de recursos que pueden ser orígen cruzado incrustado:

+ + + +

Cómo permitir el acceso de origen cruzado

+ +

Usa CORS para permitir el acceso de origen cruzado.

+ +

Cómo bloquear el acceso de origen cruzado

+ + + +

Acceso script API de Origen Cruzado

+ +

Las APIs de JavaScript APIs tales como iframe.contentWindow, {{domxref("window.parent")}}, {{domxref("window.open")}} y {{domxref("window.opener")}} permiten a los documentos referenciarse directamente entre ellos. Cuando dos documentos no tienen el mismo origen, estas referencias proveen un acceso muy limitado a los objetos Window y Location, como se describe en las siguientes dos secciones.

+ +

Para una mayor comunicación entre documentos de origenes diferentes, usar {{domxref("window.postMessage")}}.

+ +

Window

+ +

Especificación:  http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#security-window.

+ +

Los siguientes accesos de origen-cruzado a las propiedades de Window están permitidos:

+ + + + + + + + + + + + + + + + + + + + + +
Métodos
{{domxref("window.blur")}}
{{domxref("window.close")}}
{{domxref("window.focus")}}
{{domxref("window.postMessage")}}
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Atributos
{{domxref("window.closed")}}Solo lectura.
{{domxref("window.frames")}}Solo lectura.
{{domxref("window.length")}}Read only.
{{domxref("window.location")}}Solo lectura.
{{domxref("window.opener")}}Solo lectura.
{{domxref("window.parent")}}Solo lectura.
{{domxref("window.self")}}Solo lectura.
{{domxref("window.top")}}Solo lectura.
{{domxref("window.window")}}Solo lectura.
+ +

Algunos navegadores permiten el acceso a más propiedades de las que permite la especificación.

+ +

Location

+ +

Especificación:  http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#security-location.

+ +

Los siguientes accesos de origen cruzado a las propiedades de Location están permitidos:

+ + + + + + + + + + + + +
Métodos
{{domxref("location.replace")}}
+ + + + + + + + + + + + + + +
Atributos
{{domxref("URLUtils.href")}}Solo escritura.
+ +

Algunos navegadores permiten el acceso a más propiedades de las que permite la especificación.

+ +

Acceso de almacenamiento de datos de origen cruzado

+ +

El acceso a datos almacenados en el navegador tales como localStorage y IndexedDB son separados por origen. Cada origen obtiene su propio almacenamiento separado, y JavaScript en un origen no puede leer desde o escribir al almacenamiento perteneciente a otro origen.

+ +

Las cookies usan una definición separada de orígenes. Una página puede asignar una cookie para su propio dominio o cualquier dominio padre, siempre que el dominio padre no sea un sufijo público. Firefox y Chrome usan la Lista de Sufijos Públicos para determinar si un dominio es un sufijo público. Internet Explorer usa su propio método interno para determinar si un dominio es un sufijo públicio. El navegador hará disponible una cookie para el dominio dado incluyendo cualquier subdominio, no importa qué protocolo (HTTP/HTTPS) o puerto sea usado. Cuando asignas una cookie, puedes limitar su disponibilidad usando los flags Domain, Path, Secure y Http-Only. Cuando lees una cookie, no puedes ver desde dónde fue asignada. Incluso si sólo usas conexiones HTTPS, cualquier cookie que veas puede haber sido asignada usando una conexión insegura.

+ +

Ver también

+ + + +
+

Información de Documento Original

+ + +
+ +

{{QuickLinksWithSubpages("/en-US/docs/Web/Security")}}

diff --git a/files/es/web/security/same-origin_politica/index.html b/files/es/web/security/same-origin_politica/index.html deleted file mode 100644 index 18e2e759b1..0000000000 --- a/files/es/web/security/same-origin_politica/index.html +++ /dev/null @@ -1,269 +0,0 @@ ---- -title: Política Same-origin -slug: Web/Security/Same-origin_politica -tags: - - CORS - - JavaScript - - Mismo-Origen - - Política Same-Origin - - Seguridad -translation_of: Web/Security/Same-origin_policy ---- -

La política same-origin (mismo-origen) restringe cómo un documento o script cargado desde un origen puede interactuar con un recurso de otro origen. Es un mecanismo de seguridad crítico para aislar documentos potencialmente maliciosos.

- -

Definición de origen

- -

Dos páginas tienen el mismo origen si el {{Glossary("protocol","protocolo")}}, {{Glossary("port","puerto")}} (si es especificado) y {{Glossary("host","anfitrión")}} son los mismos para ambas páginas. Verá esto a veces referido como la "tupla esquema/anfitrión/puerto" (donde una "tupla" es un conjunto de componentes que juntos forman un todo).

- -

La siguiente tabla muestra ejemplos de comparaciones de origenes para la URL http://store.company.com/dir/page.html:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
URLResultadoRazón
http://store.company.com/dir2/other.htmlMismo origenSolo la ruta difiere
http://store.company.com/dir/inner/another.htmlMismo origenSolo la ruta difiere
https://store.company.com/secure.htmlFalloDiferente protocolo
http://store.company.com:81/dir/etc.htmlFalloDiferente puerto
http://news.company.com/dir/other.htmlFalloDiferente host
- -

Ver también definición de origen para file: URLs, puesto que su comparación es más complicada.

- -

Orígenes heredados

- -

Los scripts ejecutados desde páginas con una URL about:blank o javascript: heredan el origen del documento que contiene esa URL, puesto que esos tipos de URLs no contienen información sobre un servidor de origen.

- -
-

Por ejemplo, about:blank a menudo se usa como URL de nuevas ventanas popup en las que el script padre escribe contenido (por ejemplo mediante el mecanismo {{domxref("Window.open()")}}). Si este popup además contiene JavaScript, ese escript heredará el mismo origen que el script que lo ha creado.

-
- -
-

data: URLs obtienen un nuevo, vacío, contexto de seguridad.

-
- -

Excepciones en Internet Explorer

- -

Internet Explorer tiene dos excepciones mayores en lo que se refiere a la política same-origin

- - - -

Estas excepciones no son estándar y no están soportadas en otro navegador pero son útiles cuando se desarrolla una app para Windows RT (o) basada en IE.

- -

Cambiando el origen

- -

Una página puede cambiar su propio origen con algunas limitaciones. Un script puede asignar el valor de {{domxref("document.domain")}} al dominio actual o a un superdominio del dominio actual. Si se asigna a un superdominio del dominio actual, el dominio más corto es usado para las posteriores comprobaciones de origen. Por ejemplo, sea un script en http://store.company.com/dir/other.html que ejecuta lo siguiente:

- -
document.domain = "company.com";
-
- -

Tras su ejecución, la página puede pasar la comprobación de origen con http://company.com/dir/page.html (asumiendo que http://company.com/dir/page.html asigna su document.domain a "company.com" para indicar que desea hacerlo - ver {{domxref("document.domain")}} para más información). Sin embargo, company.com no podría asignar document.domain a othercompany.com ya que no es un superdominio de company.com.

- -

El número de puerto es guardado de forma separada por el navegador. Cualquier llamada al setter, incluyendo document.domain = document.domain causa que el número del puerto sea sobrescrito con null. Por lo tanto no se puede hacer que company.com:8080 hable con  company.com solo asignando document.domain = "company.com" en el primero. Tiene que ser asignado en ambos para que los números de puerto sean null.

- -
-

Nota: Cuando se use document.domain para permitir a un subdominio acceder a su padre de forma segura, necesitas asignar document.domain al mismo valor tanto en el padre como en el subdominio. Esto es necesario incluso si solo se asigna el dominio padre a su valor original. Un fallo al hacer esto puede resultar en errores de permisos.

-
- -

Acceso de red de origen cruzado

- -

La política de mismo origen controla las interacciones entre dos orígenes diferentes, como cuando se usa {{domxref("XMLHttpRequest")}} o un elemento {{htmlelement("img")}}. Estas interacciones habitualmente se ubican en tres categorías:

- - - -

Aquí hay algunos ejemplos de recursos que pueden ser orígen cruzado incrustado:

- - - -

Cómo permitir el acceso de origen cruzado

- -

Usa CORS para permitir el acceso de origen cruzado.

- -

Cómo bloquear el acceso de origen cruzado

- - - -

Acceso script API de Origen Cruzado

- -

Las APIs de JavaScript APIs tales como iframe.contentWindow, {{domxref("window.parent")}}, {{domxref("window.open")}} y {{domxref("window.opener")}} permiten a los documentos referenciarse directamente entre ellos. Cuando dos documentos no tienen el mismo origen, estas referencias proveen un acceso muy limitado a los objetos Window y Location, como se describe en las siguientes dos secciones.

- -

Para una mayor comunicación entre documentos de origenes diferentes, usar {{domxref("window.postMessage")}}.

- -

Window

- -

Especificación:  http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#security-window.

- -

Los siguientes accesos de origen-cruzado a las propiedades de Window están permitidos:

- - - - - - - - - - - - - - - - - - - - - -
Métodos
{{domxref("window.blur")}}
{{domxref("window.close")}}
{{domxref("window.focus")}}
{{domxref("window.postMessage")}}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Atributos
{{domxref("window.closed")}}Solo lectura.
{{domxref("window.frames")}}Solo lectura.
{{domxref("window.length")}}Read only.
{{domxref("window.location")}}Solo lectura.
{{domxref("window.opener")}}Solo lectura.
{{domxref("window.parent")}}Solo lectura.
{{domxref("window.self")}}Solo lectura.
{{domxref("window.top")}}Solo lectura.
{{domxref("window.window")}}Solo lectura.
- -

Algunos navegadores permiten el acceso a más propiedades de las que permite la especificación.

- -

Location

- -

Especificación:  http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#security-location.

- -

Los siguientes accesos de origen cruzado a las propiedades de Location están permitidos:

- - - - - - - - - - - - -
Métodos
{{domxref("location.replace")}}
- - - - - - - - - - - - - - -
Atributos
{{domxref("URLUtils.href")}}Solo escritura.
- -

Algunos navegadores permiten el acceso a más propiedades de las que permite la especificación.

- -

Acceso de almacenamiento de datos de origen cruzado

- -

El acceso a datos almacenados en el navegador tales como localStorage y IndexedDB son separados por origen. Cada origen obtiene su propio almacenamiento separado, y JavaScript en un origen no puede leer desde o escribir al almacenamiento perteneciente a otro origen.

- -

Las cookies usan una definición separada de orígenes. Una página puede asignar una cookie para su propio dominio o cualquier dominio padre, siempre que el dominio padre no sea un sufijo público. Firefox y Chrome usan la Lista de Sufijos Públicos para determinar si un dominio es un sufijo público. Internet Explorer usa su propio método interno para determinar si un dominio es un sufijo públicio. El navegador hará disponible una cookie para el dominio dado incluyendo cualquier subdominio, no importa qué protocolo (HTTP/HTTPS) o puerto sea usado. Cuando asignas una cookie, puedes limitar su disponibilidad usando los flags Domain, Path, Secure y Http-Only. Cuando lees una cookie, no puedes ver desde dónde fue asignada. Incluso si sólo usas conexiones HTTPS, cualquier cookie que veas puede haber sido asignada usando una conexión insegura.

- -

Ver también

- - - -
-

Información de Documento Original

- - -
- -

{{QuickLinksWithSubpages("/en-US/docs/Web/Security")}}

diff --git a/files/es/web/security/securing_your_site/desactivar_autocompletado_formulario/index.html b/files/es/web/security/securing_your_site/desactivar_autocompletado_formulario/index.html deleted file mode 100644 index 959d468392..0000000000 --- a/files/es/web/security/securing_your_site/desactivar_autocompletado_formulario/index.html +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: ¿Cómo desactivar el autocompletado del formulario? -slug: Web/Security/Securing_your_site/desactivar_autocompletado_formulario -tags: - - Desarrollo web - - Seguridad - - formulários -translation_of: Web/Security/Securing_your_site/Turning_off_form_autocompletion ---- -

Este artículo explica como un sitio web puede inhabilitar el autocompletado para los campos del formulario.

- -

Por defecto, los navegadores recuerdan información que el usuario envía a través de los campos input en los sitios web. Esto habilita al navegador para ofrecer el autocompletado (P. Ej. Sugiere posibles completaciones para los campos que el usuario ha iniciado escribiendo) o el llenado automático (P. Ej. rellenar previamente ciertos campos al cargar).

- -

Estas caracteristicas pueden ser un problema de privacidad para los usuarios, ya que mientras los navegadores pueden permitir a los usuarios a inhabilitarlas, estos están usualmente habilitados por defecto. Como sea, alguna información enviada en los formularios no es tampoco útil en el futuro (P. Ej. a one-time pin) o contiene cierta información susceptible (P. Ej. un identificador único del gobierno o un código de seguridad de la tarjeta de crédito). Un sitio web podría preferir que el navegador no recuerde los valores de tales campos, incluso si la caracteristica del autocompletado del navegador este habilitada.

- -

Desactivar autocompletado

- -

Para desactivar el autocompletado en los formularios, un sitio web puede establecer el atributo {{htmlattrxref("autocomplete", "input")}} a "off":

- -
autocomplete="off"
- -

Puede hacer esto para un formulario entero o para elementos específicos de tipo "input" dentro del formulario:

- -
<form method="post" action="/form" autocomplete="off">
-[…]
-</form>
- -
<form method="post" action="/form">
-  […]
-  <div>
-    <label for="cc">Credit card:</label>
-    <input type="text" id="cc" name="cc" autocomplete="off">
-  </div>
-</form>
- -

Estableciendo autocomplete="off" en los campos tiene dos efectos:

- - - -

En algunos casos, el navegador continuará sugiriendo valores de autocompletado incluso si el atributo autocompletar está desactivado. Este comportamiento inesperado puede resultar bastante confuso para los desarrolladores. El truco para realmente no aplicar el autocompletado es asignar un valor no válido al atributo, por ejemplo:

- -
autocomplete="nope"
-
- -

Dado que este valor no es válido para el atributo autocompletar, el navegador no tiene forma de reconocerlo y deja de intentar autocompletarlo.

- -

El atributo autocompletar y los campos de inicio de sesión

- -

Los navegadores modernos implementan un gestor de contraseñas integrado: cuando el usuario ingresa un nombre de usuario y contraseña para un sitio, el navegador le ofrece recordarlos. Cuando el usuario visita el sitio nuevamente, el navegador completa automáticamente los campos de inicio de sesión con los valores almacenados.

- -

Adicionalmente, el navegador permite al usuario elegir una contraseña maestra que utilizará para cifrar los datos de inicio de sesión almacenados.

- -

Incluso sin una contraseña maestra, el gestor de contraseñas integrado en el navegador generalmente se considera una ganancia para la seguridad. Como los usuarios no tienen que recordar las contraseñas que el navegador almacena para ellos, son capaces de escoger contraseñas más seguras de lo que lo harían.

- -

Por esta razón, muchos navegadores modernos no admiten autocompletar = "off" para los campos de inicio de sesión:

- - - -

Este es el comportamiento en Firefox (desde la versión 38), Google Chrome (desde la 34) e Internet Explorer (desde la versión 11).

- -

Si un autor desea evitar el autocompletado de los campos de contraseña en las páginas de administración de usuarios donde un usuario puede especificar una nueva contraseña para alguien más que para si mismo, se debe especificar autocomplete="new-password", aunque el soporte para esto no se ha implementado todavía en todos los navegadores.

- -

Uso del Plugin de jQuery disableAutoFill

- -

Este complemento aleatorizará por defecto el nombre del atributo. Se restaurará al nombre del campo original al enviar el formulario. Esto es para evitar el autocompletado automático en todos los navegadores (incluye extensiones de auto-completado de terceros),no solo para Google Chrome. 

- -

URL: https://terrylinooo.github.io/jquery.disableAutoFill/

- -

{{QuickLinksWithSubpages("/en-US/docs/Web/Security")}}

- -

 

diff --git a/files/es/web/security/securing_your_site/turning_off_form_autocompletion/index.html b/files/es/web/security/securing_your_site/turning_off_form_autocompletion/index.html new file mode 100644 index 0000000000..959d468392 --- /dev/null +++ b/files/es/web/security/securing_your_site/turning_off_form_autocompletion/index.html @@ -0,0 +1,77 @@ +--- +title: ¿Cómo desactivar el autocompletado del formulario? +slug: Web/Security/Securing_your_site/desactivar_autocompletado_formulario +tags: + - Desarrollo web + - Seguridad + - formulários +translation_of: Web/Security/Securing_your_site/Turning_off_form_autocompletion +--- +

Este artículo explica como un sitio web puede inhabilitar el autocompletado para los campos del formulario.

+ +

Por defecto, los navegadores recuerdan información que el usuario envía a través de los campos input en los sitios web. Esto habilita al navegador para ofrecer el autocompletado (P. Ej. Sugiere posibles completaciones para los campos que el usuario ha iniciado escribiendo) o el llenado automático (P. Ej. rellenar previamente ciertos campos al cargar).

+ +

Estas caracteristicas pueden ser un problema de privacidad para los usuarios, ya que mientras los navegadores pueden permitir a los usuarios a inhabilitarlas, estos están usualmente habilitados por defecto. Como sea, alguna información enviada en los formularios no es tampoco útil en el futuro (P. Ej. a one-time pin) o contiene cierta información susceptible (P. Ej. un identificador único del gobierno o un código de seguridad de la tarjeta de crédito). Un sitio web podría preferir que el navegador no recuerde los valores de tales campos, incluso si la caracteristica del autocompletado del navegador este habilitada.

+ +

Desactivar autocompletado

+ +

Para desactivar el autocompletado en los formularios, un sitio web puede establecer el atributo {{htmlattrxref("autocomplete", "input")}} a "off":

+ +
autocomplete="off"
+ +

Puede hacer esto para un formulario entero o para elementos específicos de tipo "input" dentro del formulario:

+ +
<form method="post" action="/form" autocomplete="off">
+[…]
+</form>
+ +
<form method="post" action="/form">
+  […]
+  <div>
+    <label for="cc">Credit card:</label>
+    <input type="text" id="cc" name="cc" autocomplete="off">
+  </div>
+</form>
+ +

Estableciendo autocomplete="off" en los campos tiene dos efectos:

+ + + +

En algunos casos, el navegador continuará sugiriendo valores de autocompletado incluso si el atributo autocompletar está desactivado. Este comportamiento inesperado puede resultar bastante confuso para los desarrolladores. El truco para realmente no aplicar el autocompletado es asignar un valor no válido al atributo, por ejemplo:

+ +
autocomplete="nope"
+
+ +

Dado que este valor no es válido para el atributo autocompletar, el navegador no tiene forma de reconocerlo y deja de intentar autocompletarlo.

+ +

El atributo autocompletar y los campos de inicio de sesión

+ +

Los navegadores modernos implementan un gestor de contraseñas integrado: cuando el usuario ingresa un nombre de usuario y contraseña para un sitio, el navegador le ofrece recordarlos. Cuando el usuario visita el sitio nuevamente, el navegador completa automáticamente los campos de inicio de sesión con los valores almacenados.

+ +

Adicionalmente, el navegador permite al usuario elegir una contraseña maestra que utilizará para cifrar los datos de inicio de sesión almacenados.

+ +

Incluso sin una contraseña maestra, el gestor de contraseñas integrado en el navegador generalmente se considera una ganancia para la seguridad. Como los usuarios no tienen que recordar las contraseñas que el navegador almacena para ellos, son capaces de escoger contraseñas más seguras de lo que lo harían.

+ +

Por esta razón, muchos navegadores modernos no admiten autocompletar = "off" para los campos de inicio de sesión:

+ + + +

Este es el comportamiento en Firefox (desde la versión 38), Google Chrome (desde la 34) e Internet Explorer (desde la versión 11).

+ +

Si un autor desea evitar el autocompletado de los campos de contraseña en las páginas de administración de usuarios donde un usuario puede especificar una nueva contraseña para alguien más que para si mismo, se debe especificar autocomplete="new-password", aunque el soporte para esto no se ha implementado todavía en todos los navegadores.

+ +

Uso del Plugin de jQuery disableAutoFill

+ +

Este complemento aleatorizará por defecto el nombre del atributo. Se restaurará al nombre del campo original al enviar el formulario. Esto es para evitar el autocompletado automático en todos los navegadores (incluye extensiones de auto-completado de terceros),no solo para Google Chrome. 

+ +

URL: https://terrylinooo.github.io/jquery.disableAutoFill/

+ +

{{QuickLinksWithSubpages("/en-US/docs/Web/Security")}}

+ +

 

-- cgit v1.2.3-54-g00ecf