Le sugiero que lea sobre la defensa contra XSS. OWASP tiene buenos recursos. Debe aplicar la validación de entrada adecuada a todos los valores de entrada y escapar adecuadamente de todos los valores dinámicos que inserta en el documento HTML de salida. Hay muchos recursos en línea sobre cómo prevenir el XSS.
En cuanto a su aplicación específica, no nos ha proporcionado suficiente información para diagnosticar el problema. ¿Intentaste abrir my_php_file.php?nsextt="..."
en tu navegador para ver qué pasa? ¿Aparece un diálogo de alerta? Si ve la fuente de la respuesta, ¿ve un atributo " style=...
" en alguna parte de la respuesta? Además, aunque usted dice que no usa ningún parámetro GET en my_php_file.php, ¿es posible que el código en my_php_file.php pueda incluir otro archivo PHP o pueda llamar a alguna otra función que produzca una salida insegura? Sospecho que puede tener una vulnerabilidad XSS que permita la inyección de un nuevo atributo en medio de alguna lista de atributos en algún lugar.
Menciona el enfoque que está utilizando para sanear los parámetros en otras páginas. Me gustaría mencionar que este no es el método adecuado de desinfección de entrada. strip_tags
no previene XSS ( strip_tags
no garantiza la eliminación de todas las etiquetas; e incluso si lo hizo, eliminar todas las etiquetas no es suficiente, ya que aún se puede montar un ataque XSS inyectando atributos sin inyectar ninguna nueva etiqueta) Una buena regla general es que si estás usando strip_tags
, probablemente estés haciendo algo mal.
Más generalmente, la validación de entrada no se trata de lanzar ciegamente cada función de extracción que pueda pensar en los datos. En su lugar, debe verificar que la entrada coincida con una lista blanca o expresión regular adecuada, según sea apropiado para el tipo de datos. Y, cuando genera los datos, debe escapar de una manera que sea adecuada para el contexto donde se insertarán los datos. Por ejemplo, si lo inserta en el contexto HTML estándar entre etiquetas, puede escapar de los datos con htmlescapechars
. Si lo inserta como un enlace (como el valor de un atributo href), debe asegurarse de que sea una URL con el formato correcto con un esquema seguro (http o https son seguros; javascript no lo es). Hay mucho más que decir sobre la validación de entrada y el escape de salida: consulte los recursos de OWASP para obtener mucha información sobre este tema.