Cromo: Detalles de ERR_BLOCKED_BY_XSS_AUDITOR

Estoy recibiendo esta bandera de cromo al tratar de publicar y luego obtener un simple formulario.

El problema es que la consola de desarrollador no muestra nada sobre esto y no puedo encontrar el origen del problema por mí mismo.

¿Hay alguna opción para ver esto con más detalle? Ver el trozo de código que provoca el error para solucionarlo...

Solución

Chrome v58 podría o podría no solucionar tu problema... Depende de lo que esté enviando. Por ejemplo, si intenta enviar datos HTML/XML sin procesar dentro de un elemento input/select/textarea, es posible que el auditor bloquee su solicitud.

En los últimos días me encontré con este problema en dos escenarios diferentes: un editor WYSIWYG del lado del cliente y un formulario de carga interactivo con algún tipo de vista previa del contenido. Me las arreglé para arreglar ambos codificando en base64 el HTML crudo antes de enviarlo por correo, y luego decodificándolo en la página PHP receptora. Esto probablemente solucionará el problema y, lo más importante, aumentará el nivel de conciencia del desarrollador con respecto a los datos provenientes de las solicitudes POST, con la esperanza de empujarlo a adoptar estrategias efectivas de codificación/decodificación de datos y fortalecer su aplicación web contra ataques de tipo XSS.

Para codificar en base64 tu contenido en el lado del cliente puedes usar la función btoa() nativa, que es soportada por la mayoría de los navegadores hoy en día, o una alternativa de terceros como un plugin de jQuery (yo terminé usando esto, que funcionó bien).

Para decodificar en base64 los datos del POST puede utilizar la función base64_decode(str) de PHP, Convert.FromBase64String(str) de ASP.NET o cualquier otra (dependiendo de su escenario del lado del servidor).

Para más información, consulte esta entrada del blog que escribí sobre el tema.

Comentarios (4)

Cuando actualizo href de javascript:void(0) a # en la página de POST request, funciona.

Por ejemplo:

<a href="javascript:void(0)" id="loginlink">login</a>

Cambia a:

<a href="#" id="loginlink">login</a>
Comentarios (1)

Es un error de Chrome. El único remedio es usar FireFox hasta que arreglen este fallo de Chrome. El auditor XSS destrozando una página, que ha funcionado bien durante 20 años, parece ser un síntoma, no una causa.

Comentarios (3)