2012-06-14 15 views
9

Teniendo en cuenta este código JavaScript (que es sólo un comentario en referencia a una URL):JSLint marcar "comentario peligrosa"

// see http://enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-1/ 

JSLint con "Safe subconjunto" encendido dirán

Dangerous comment. 
// http://enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-1/ 

Cómo ¿Puede un comentario ser peligroso? ¡Los comentarios, por definición, no son analizados! ¿O son?

Editar: El uso de una URL diferente no es necesariamente peligroso. Por ejemplo esto:

// http://enterprisejquery.com 

no activa la bandera. ¿Cómo puede una URL en un comentario ser 'peligrosa', pero otra no?

Respuesta

3

comentarios "peligrosas" coincide con la expresión regular:

/@cc|<\/?|script|\]\s*\]|<\s*!|&lt/i 

En este caso, su comentario es "peligrosa" porque contiene la cadena "guión".

Creo que esto es probablemente un falso positivo.

+0

Tienes razón-- esto es [paranoia de script block] (http://stackoverflow.com/questions/1474185/what-does-this-mean-document-writescript). Wow, me gustaría que jslint dijera eso. – paleozogt

+0

por cierto, simplemente haciendo '// script' lo desencadena. O en el ejemplo de la pregunta, reemplazar 'javascript' con 'foo' hace que el error desaparezca. – paleozogt

2

Puede ejecutar los comentarios de forma manual utilizando eval:

http://googlecode.blogspot.com/2009/09/gmail-for-mobile-html5-series-reducing.html

para combinar todos los módulos en un solo recurso, escribimos cada módulo en una etiqueta de script independiente y ocultaba el código dentro de un bloque de comentario (/ * * /). Cuando el recurso se carga por primera vez, no se analiza el código, ya que está comentado. Para cargar un módulo, busque el elemento DOM para la etiqueta de script correspondiente , elimine el bloque de comentarios y eval() el código .

Además, alguien puede descomentar accidentalmente el código peligroso y crear una vulnerabilidad.

De manera predeterminada, no, los comentarios de JavaScript no se analizan. Pero no hay nada bueno que tener por ahí.

+0

JSLint no cree que todas las URL en los comentarios sean peligrosas, sin embargo. He editado mi pregunta para mostrar esto. ¿Por qué algunas URL son peligrosas pero otras no? – paleozogt

+0

Además, dado que el comentario _no es en realidad javascript_, ¿cómo puede ser peligroso? ¿No la evaluación simplemente fracasaría? – paleozogt

+0

Buena pregunta. Supongo que Samuel respondió esa pregunta. Pero su respuesta solo plantea otra pregunta de por qué esa expresión regular en realidad se considera peligrosa. –