Es fácil cuando tienes un ejército de programadores y un cofre de guerra lleno de dinero.
Esto no es ciencia de cohetes. Identifican un caso de vulnerabilidad y están codificando a su alrededor, probablemente a través de Regex y Javascript en el front-end, así como una validación profunda de back-end para garantizar que los datos no se vean comprometidos antes de la inserción. Es lo mismo que todos deberíamos hacer, excepto que para Ebay es mucho más maduro que lo que la mayoría de nosotros trabajamos, y MUCHO más grande.
Si se parece al banco en el que solía trabajar, tienen un equipo de PAS dedicado a detectar errores diminutos en prod, abrir tickets con ingenieros y seguir el proceso con prioridad. Entre desarrolladores, probadores, gestión de calidad y PAS, no hay ninguna razón para que una vulnerabilidad se elimine, pero si se produce un error, debe reaccionar rápidamente.
Considere tomar un enfoque de "mejora progresiva" para este desafío si planea seguir esta ruta. Comience por bloquear javascript completamente al principio. Luego, mejore para permitir --alguno-- a través de un método que considere seguro - y solo permita lo seguro mientras continúa. Continúe este proceso permitiendo cada vez más mientras atrapa las cajas de borde a medida que surgen en pruebas o producción. Gradualmente, migrará de permitir lo que está permitido para bloquear lo que NO ES. Si bien esto no debería ser un pan comido, incluso las empresas de vanguardia pierden el conocimiento del concepto básico de gestión y mejora del ciclo de vida.
Dicho esto, cuando se trata de desinfectar las entradas, es mejor combinar los métodos de validación frontales y de fondo. Front-end proporciona una retroalimentación más intuitiva y rápida a los clientes, pero al igual que con cualquier lenguaje del lado del cliente puede ser superado por los usuarios expertos. La validación de back-end es su cortafuegos, lo que garantiza que todo lo que se desliza más allá de la interfaz se trate de forma adecuada. Su base de datos es su línea de vida, ¡así que protéjala a toda costa!
A menos que tenga un ejército y un gran presupuesto, tratando de codificar para todos los casos de borde en algo tan amplio como un CMS que permite cerca de la entrada carta blanca casi siempre termina por una empresa financiera perder.
Si utiliza el enfoque de listas blancas htmlpurifier buena conocida marcado, y construir una lista blanca muy robusta, puede hacerlo de forma segura. –
heh. Pude crear una lista que contenía una alerta, pero cuando probé 'alert (document.cookie)', recibí el siguiente error: "Proporcione la información correcta en los campos resaltados. Descripción: su ficha no puede contener javascript (".cookie", "cookie (", "replace (", IFRAME, META, o includes), cookies o href base. " –
Me pregunto qué ingeniosos son sus filtros. Es decir, escribir javascript para generar" alert (document.cookie) " –