2012-11-21 9 views
12

Ich verwende JSHint, und es wurde die folgende Fehlermeldung:Was ist mit scriptbezogenen URLs?

Script URL. 

Was ich das, weil auf dieser bestimmten Linie passiert bemerkte, dass es eine Zeichenfolge ist eine javascript:... URL enthält.

Ich weiß, dass JSHint beschwerte, dass, weil die scripturl Option festgelegt ist, und da meine Codebasis ziemlich groß ist, muss ich es für jetzt deaktivieren.

Noch, ich verstehe nicht, was ist das Problem der Verwendung von Skript-URLs?

+0

Es ist eine schlechte Übung. – epascarello

+6

@epascarello: Er fragt warum. – SLaks

+3

Daher, warum ich es nicht zur Antwort gemacht habe! Ihr seid fantastisch! – epascarello

Antwort

19

javascript: URLs sind Teil von 'eval is evil'.

Um die URL javascript: auszuführen, muss der Browser einen JS-Parser starten und den Text der URL parsen.
Dies ist ein langsamer und kostspieliger Prozess.

Auch das Zusammenstellen von javascript: URLs (oder anderen Strings, die Quellcode enthalten) ist eine knifflige Aufgabe, die anfällig für XSS-Schwachstellen ist.

Schließlich vermischt das Mischen von Code und URLs die Trennung von Inhalt und Verhalten (Code).

+0

Muss es nicht die gleiche Analyse durchführen, wenn Sie das Skript in '