He estado usando Microsoft's AntiXss Library y me preguntaba si hay una buena razón por la cual su método JavaScriptEncode
ajusta el resultado en comillas simples? Ese comportamiento parece poco convencional.¿Hay alguna buena razón por la cual las envolturas AntiXss.JavaScriptEncode resultan en comillas simples?
5
A
Respuesta
5
En realidad, la nueva versión 3.0beta tiene un código JavaScriptEncode (string input, bool flagforQuote). Poniéndolo en falso, produce un resultado sin comillas.
1
Probablemente para asegurarse de que está devolviendo una cadena. El uso que he visto es tomar entrada y devolver un valor que puede asignar a una variable en javascript.
var message = <% = AntiXss.JavaScriptEncode (mensaje)%>;
Ahora, no importa lo que haya en el mensaje, el mensaje de la variable js tendrá la entrada exacta escapada apropiadamente así que si algún idiota intentara inyectar javascript en ese mensaje simplemente verían el resultado de su mensaje asignado al mensaje variable.
Cuestiones relacionadas
- 1. ¿Hay alguna buena razón por la cual la #region y la #endregion no funcionen en F #
- 2. ¿Hay alguna razón por la cual MicrosoftAjax.js no esté minificado?
- 3. ¿Hay alguna buena razón por la cual los ternarios en C# son limitados?
- 4. ¿Hay alguna razón por la cual ciertos sitios no permiten períodos en las contraseñas?
- 5. ¿Hay una buena razón por la cual `deleteBy` no tiene su tipo más general?
- 6. ¿Hay alguna razón por la cual la base de datos h2 no debe usarse en producción?
- 7. ¿Hay alguna razón por la cual la expresión StringPiece/StringRef no sea más popular?
- 8. ¿Hay alguna buena razón por la cual el operador de asignación no es un punto de secuencia?
- 9. ¿Hay alguna razón en particular por la cual addClass() de jQuery no sea correcto?
- 10. ¿Hay alguna razón por la cual los desarrolladores de software no están externalizando la autorización?
- 11. ¿Hay alguna diferencia entre comillas simples y dobles en Java?
- 12. ¿Hay alguna razón por la cual MySQL no sea compatible con FULL OUTER JOINS?
- 13. JS doble exclamación: ¿hay alguna buena razón para usarlo?
- 14. ¿Alguna vez hay una buena razón para usar Insertion Sort?
- 15. ¿Alguna vez hay una buena razón para usar eval()?
- 16. ¿Hay alguna buena razón para usar Websockets fuera del navegador?
- 17. ¿Hay una buena razón por la cual la propiedad Máxima de ScrollBar solo se puede alcanzar mediante programación?
- 18. ¿Hay alguna manera de autogenerar envolturas en Eclipse?
- 19. comillas dobles vs comillas simples en JavaScript
- 20. Diferencia entre comillas simples y comillas dobles en Javascript
- 21. ¿Existe alguna razón por la cual fopen() no funcione después de varios cientos de aperturas?
- 22. ¿Cómo manejar las comillas simples en las constantes de internacionalización?
- 23. ¿Cómo uso comillas simples dentro de comillas simples?
- 24. ¿Hay alguna razón por la cual un programador de Windows .Net necesita aprender C o C++ nunca más?
- 25. ¿Cómo puedo reemplazar las comillas dobles con comillas simples
- 26. ¿Hay alguna razón para lanzar una DivideByZeroException?
- 27. ¿Cómo se escapan solo las comillas simples?
- 28. ¿Hay alguna buena razón para usar "printf" en lugar de "imprimir" en java?
- 29. ¿Hay alguna buena alternativa para Visio/PowerPoint?
- 30. ¿Hay alguna buena razón para usar el cambio de bit a excepción de la matemática rápida?
Derecha. Pero más a menudo me encuentro utilizando JavaScriptEncode para codificar la entrada del usuario no confiable que compone * partes * de cadenas y en ese escenario es simplemente molesto para concatenar con '+' o eliminar las cotizaciones manualmente. También argumentaría que este no es el comportamiento que uno esperaría, ya que ninguno de los otros métodos hace algo similar (por ejemplo, HtmlAttributeEncode no ajusta el resultado entre comillas dobles). –
No podría estar más de acuerdo. Muy molesto – Erlend