2012-11-21 9 views
12

Używam JSHint i zrobiło się następujący błąd:Co się dzieje z adresami URL kierowanymi skryptami?

Script URL. 

Jakie zauważyłem, że się stało, bo w tej konkretnej linii jest łańcuch zawierający javascript:... URL.

Wiem, że JSHint narzekał, że ponieważ ustawiono opcję scripturl, a ponieważ mój kod jest dość duży, będę musiał go usunąć na razie.

Nadal nie rozumiem, jaki jest problem z używaniem adresów URL skryptów?

+0

To jest zła praktyka. – epascarello

+6

@epascarello: Pyta dlaczego. – SLaks

+3

Dlatego też nie uczyniłem z tego odpowiedzi! Jesteście niesamowici! – epascarello

Odpowiedz

19

javascript: Adresy URL są częścią "eval is evil".

Aby wykonać adres URL javascript:, przeglądarka musi uruchomić parser JS i przeanalizować tekst adresu URL.
Jest to powolny i kosztowny proces.

Adresy URL (lub inne ciągi zawierające kod źródłowy) to skomplikowane zadanie podatne na luki w zabezpieczeniach XSS.

Wreszcie, mieszanie kodu i adresów URL narusza rozdział treści i zachowania (kod).

+0

Czy to nie musi zrobić tego samego skryptu, jeśli umieścisz skrypt w '