2009-04-23 11 views
2

Fehler in der Speicherverwaltung in C, C++ und ihrer Art sind wohlbekannt. Ich programmiere hauptsächlich in dynamischen, schwach typisierten Sprachen. Gibt es Probleme, die in solchen Sprachen besonders wichtig sind? Auf welche sprachspezifischen Probleme kann ich achten?Sichere Programmierung in dynamischen Sprachen

Ich bin generell auf Standardsicherheitsprobleme bedacht und versuche, über die Art und Weise nachzudenken, in der Code missbraucht werden könnte, bin aber sicher, dass es weniger oberflächliche Fehler gibt, die ich machen könnte, und bin daran interessiert, mein Wissen zu erweitern in dieser Gegend.

Antwort

1

SQL Injection ist ein häufiger Angriff, der nicht von der Typverwaltung abhängt. Im Allgemeinen ist die fehlende Eingabevalidierung ein sehr häufiger Grund für Sicherheitsprobleme.

2

Wenn Sie etwas Ähnliches wie eval() verwenden, dann gibt es Risiken für Angriffe, vor allem wenn Sie etwas von außerhalb Ihrer Anwendung vertrauen.

2

Nur weil Sie nicht den niedrigeren Code schreiben, bedeutet das nicht, dass die Sprache, die Sie verwenden, und daher Ihre App, nicht diese Art von Sicherheitsproblemen haben. Meine Antwort auf Ihre Frage besteht also darin, dass Sie immer auf dem neuesten Stand der von Ihnen verwendeten Tools sind. Dies ist eher ein Problem für Sie, wenn Sie die Umgebung hosten, in der Ihre App ausgeführt wird, da dies für Benutzer Ihrer App ein größeres Problem darstellt, wenn sie auf ihren Computern ausgeführt werden müssen.

+0

Das ist eine gute Erinnerung. – vezult

1

Im Fall von JavaScript, um die Haupt-Schwachstellen nach dem EC-Council Sichere Programmer Vol.1 sind die folgenden:

Cross Site Scriptting (XSS). In einem Angriff XSS, senden Angreifer clientseitige ausführbare Skripte durch Einfügen bösartige JavaScript, VBScript, ActiveX, HTML oder Flash in verwundbar dynamische Seite und führen Sie das Skript auf den Computer des Benutzers die Informationen des Benutzers zu sammeln.

XSS Vermeiden:

Constrain Eingang:

  • eine Codepage definieren, die darüber entscheiden Wich Zeichen sind problemetic,
  • Variablen einschränken Zeichen zu wählen, die ausdrücklich erlaubt sind.
  • Metazeichen Filter abhängig von dem Interpreter (HTML, Browser und das Dateisystem)

aply Kanonisierungsprobleme: - Die Kanonisierungsprobleme Technik des Eingang mit einem sachgemäßen von vor dem Eingang Validieren brinbgs.

Validate de-Eingang:

  • Validate alle externer Eingang für Feldlänge, Datentyp, Reichweite und für eine weiße Liste Akzeptanz von onlyknown unproblematischen Zeichen zu gewährleisten.

Encode Ausgabe

  • konvertieren Metazeichen z: <,> und "", HTML Verwendung Entitäten statt.
  • Kodieren Sie eine vom Benutzer bereitgestellte Ausgabe, sodass verhindert wird, dass eingefügte Skripts in ausführbarer Form an Benutzer übertragen werden.

JavaScript Hijacking: Ermöglicht eine Unbefugten vertraulichen Informationen zu lesen. Tritt , weil die meisten Web-Browser, die implementieren ein Sicherheitsmodell nicht antizipieren die Verwendung von Javascript für Kommunikation. JavaScrpt Hijacking ist in der Regel durch Cross-Site-Request-Fälschung durchgeführt. Coss-Site Anfrage Forgeryis ein Angriff, der das Opfer ermöglicht, eine oder weitere HTTP-Anfragen an eine anfällige Website zu entsenden. Dieser Angriff kompromittiert Daten Integrität und Vertraulichkeit, dh ein Angreifer kann Informationen des Opfers lesen und die Informationen auf der angreifbaren Website gespeichert ändern.

  • von declinig böswillige Anfragen:

A Javascript Hijacking Angriff kann verteidigt werden.

  • Durch Verhindern der direkten Ausführung der JavaScript-Antwort.
  • +1

    Ausgezeichnet! Dies ist eher die Art von Feedback, auf die ich gehofft hatte. – vezult

    Verwandte Themen