2009-06-30 12 views
7

Ich habe mit Javascript für Spaß herum getüftelt. Ich frage mich, warum es Leute gibt, die Javascript nicht mögen, weil es leicht missbraucht oder schlecht geschrieben werden kann. Dann gibt es einige Leute, die Javascript lieben, weil es eine mächtige Sprache und sehr nützlich für verschiedene Zwecke ist.Was macht Javascript gefährlich? Was nutzt dieses Javascript als?

+10

Es ist vollkommen sicher, solange man nach Mitternacht kein Javascript schreibt. Du wurdest gewarnt! – karim79

Antwort

0

Ich denke, dass Leute, die kein Framework wie jQuery oder MooTools verwendet haben, JavaScript hassen werden, weil es so schwierig ist, gut zu schreiben, zu debuggen und über alle gängigen Browser hinweg zu arbeiten.

Ich weiß das, denn genau so habe ich mich gefühlt, bevor ich jQuery entdeckt habe - jetzt macht es Spaß, JavaScript zu schreiben.

+1

Cross-Browser-Probleme haben wenig mit Javascript, der Sprache zu tun. Es ist das DOM, das das große Problem ist. –

+0

Richtig, aber wer schreibt kein JavaScript für Browser? –

1

Javascript kann für Cross-Site-Scripting-Angriffe verwendet werden, die bösartigen Code in eine Website injizieren. See this Wikipedia Article

+1

Das stimmt, aber JavaScript selbst ist normalerweise nicht der Übeltäter - schlechtes Design und ein Mangel an serverseitiger Datenverifizierung ist viel häufiger (oft eingeführt wegen zu viel Javascript). – jwoolard

+0

@jwoolard; absolut wahr, aber diese Sicherheitslücken wären keine Sicherheitslücken ohne etwas, um sie auszunutzen. – Mathew

6

Douglas Crockford hat eine Reihe von Vorträgen, die Sie an die guten Teile von JavaScript und was zu bleiben weg von Punkt:

So einige Dinge, die JavaScript machen eine gute Sprache schließen ein:

  • Es ist stark von Lisp beeinflusst und hat Verschlüsse und andere erstklassige Funktionsgüte.
  • Es hat eine literale Objekt- und Listennotation, so dass Datenstrukturen deklarativ sehr einfach spezifiziert werden können.
  • Es ist in praktisch jedem Browser ohne jede Art von Plug-in verfügbar.
  • Ente tippen.
  • Prototypische Vererbung.

Einige der schlechten Dinge sind:

  • Optional Semikolons für Anweisungsabschluss, die zu schwer führt Fehler zu finden.
  • Automatischer Typ Zwang, der zu schwer zu finden Bugs führt.
  • Ein einzelner globaler Namespace, der von allen Skripts gemeinsam genutzt wird, die für eine Seite ausgeführt werden und die Wiederverwendung und Wartung zu einem Albtraum machen können.
  • Automatisches Erstellen/Bewirken von Namen im singulären globalen Namespace, wenn lokale Variablen nicht ordnungsgemäß deklariert sind.
  • Eine verschrobene Möglichkeit, prototypische Vererbung zu verwenden, die zu seltsamen Fehlern führen kann, wenn Sie vergessen, new zu verwenden.
  • Inkompatibilitäten zwischen den führenden Implementierungen.

... aber es patterns, die mit den Namespace-Probleme helfen können, gibt es compilers, dass Sie einige der Fehler ermutigende Sachen und frameworks, die Sie vermeiden die inkompatible Sachen vermeiden helfen helfen.

Mit Sorgfalt können Sie sich an die Teile von JavaScript halten, die es zu einer kraftvollen und angenehmen Sprache machen.

+0

Sehen Sie sich eine Reihe toller Videos zu JavaScript von Douglas Crockford und anderen an. http://developer.yahoo.com/yui/theater/ // Douglas Crockford - Die JavaScript-Programmiersprache http://video.yahoo.com/video/play?vid=111593 // Douglas Crockford - Erweitertes JavaScript http://video.yahoo.com/video/play?vid=111585 Die obigen 2 Videos beschreiben das Gute die Schlechten und Hässlichen Teile von JavaScript. – Leyu

1

Javascript per se ist nicht gefährlich. In der Tat ist es relativ "sicher", was die Sprachen angeht. Sie können nicht einen Computer mit ihm abstürzen, Sie werden sogar Schwierigkeiten haben, einen Computer zu sperren.

Allerdings ist Javascript auch eine ständige Quelle von Sicherheitslücken. Dies ist (normalerweise) nicht der Fall, weil JavaScript-Entwickler schlechten Code schreiben, sondern aufgrund von kleinen Fehlern in den Browsern, die den Code ausführen.

Generell ist Javascript ungefähr so ​​sicher wie Programmieren, und es kann den Unterschied zu fast jeder Website ausmachen. Machen Sie sich keine Sorgen, dass Ihr JavaScript-Code gefährlich ist. Natürlich wollen Sie es nicht ;-).

3

Aus der Perspektive eines Web-Autor:

Wenn ein Dritter JavaScript in Ihre Website injizieren können, können sie den Browser der Benutzer etwas tun Benutzer machen tun. Dies beinhaltet das Versenden von Spam auf der Website, das Senden von Benutzernamen/Passwörtern/Kreditkartendetails an Dritte und das Verlassen der Website, um sich Pornos anzuschauen.

Aus der Sicht eines Endbenutzers:

Es gibt ein paar trivialen Belästigungen, dass JavaScript tun kann (wie eine Endlosschleife von window.alert Nachrichten einrichten, die den Browser stauen). Glücklicherweise stoße ich in diesen Tagen nach den Geocities nicht so oft auf sie.

Ein großer Teil der Sicherheitslücken in Browsern wurde mit den JS-Engines in Verbindung gebracht. Als Angriffsvektor zur Einführung von Viren sind JavaScript-Exploits sehr beliebt. (Dies sind Fehler mit dem Browser, nicht mit JS selbst).