53 Stimmen

Welche gängigen Web-Exploits sollte ich kennen?

Bezüglich Webprogrammierung bin ich noch ziemlich unerfahren. Die meiste Zeit habe ich mit Client-Anwendungen verbracht. Daher bin ich neugierig, welche gängigen Angriffe ich bei meiner Website fürchten/testen sollte.

3voto

Ian Patrick Hughes Punkte 10365

SQL-INJEKTIONSANGRIFFE. Sie sind einfach zu vermeiden, aber leider allzu häufig.

VERTRAUEN SIE NIEMALS, NIEMALS, NIEMALS, NIEMALS (habe ich "niemals" erwähnt?) Benutzerinformationen, die Ihnen von Formular-Elementen übergeben wurden. Wenn Ihre Daten nicht überprüft werden, bevor sie in andere logische Ebenen Ihrer Anwendung übergeben werden, können Sie genauso gut einem Fremden auf der Straße die Schlüssel zu Ihrer Website geben.

Sie haben nicht erwähnt, auf welcher Plattform Sie sich befinden, aber wenn Sie ASP.NET verwenden, können Sie mit dem guten alten Scott Guthrie und seinem Artikel "Tipp/Trick: Schutz vor SQL-Injektionsangriffen" beginnen.

Danach müssen Sie darüber nachdenken, welche Art von Daten Sie Benutzern erlauben, in Ihre Datenbank einzugeben und schließlich wieder auszugeben. Wenn Sie HTML-Einfügungen gestatten und diese später präsentieren, sind Sie anfällig für Cross-Site-Scripting-Angriffe (bekannt als XSS).

Das sind die beiden Punkte, die mir einfallen, aber unser eigener Jeff Atwood hatte einen guten Artikel auf Coding Horror mit einer Rezension des Buches "19 Deadly Sins of Software Security".

3voto

Steve M Punkte 10441

Die meisten Leute hier haben SQL Injection und XSS erwähnt, was sozusagen korrekt ist, aber lassen Sie sich nicht täuschen - die wichtigsten Dinge, um die Sie sich als Webentwickler kümmern müssen, sind die EINGABENÜBERPRÜFUNG, wo XSS und SQL Injection herkommen.

Zum Beispiel, wenn Sie ein Formularfeld haben, das nur Ganzzahlen akzeptiert, stellen Sie sicher, dass Sie auf der Client-Seite UND der Server-Seite etwas implementieren, um die Daten zu bereinigen.

Überprüfen Sie jede Eingabe besonders sorgfältig, wenn sie in einer SQL-Abfrage enden wird. Ich schlage vor, eine Escaper-Funktion zu erstellen und sie um alles zu wickeln, was in eine Abfrage geht. Zum Beispiel:

$query = "SELECT feld1, feld2 FROM tabelle1 WHERE feld1 = '" . myescapefunc($userinput) . "'";

Ebenso, wenn Sie irgendwelche benutzerdefinierten Informationen auf einer Webseite anzeigen möchten, stellen Sie sicher, dass Sie alle -Tags entfernt haben oder alles andere, das zu einer Ausführung von Javascript führen könnte (wie onLoad= oder onMouseOver= usw. Attribute an Tags).</p></x-turndown>

1voto

icco Punkte 3033

Dies ist auch eine kurze Präsentation zur Sicherheit von einem der Kernentwickler von WordPress.

Sicherheit in WordPress

Es behandelt alle grundlegenden Sicherheitsprobleme in Webanwendungen.

0voto

TheSmurf Punkte 15101

Die häufigsten sind wahrscheinlich Datenbankinjektionsangriffe und Cross-Site-Skriptangriffe; hauptsächlich weil diese am einfachsten durchzuführen sind (dies liegt wahrscheinlich daran, dass Programmierer hier am nachlässigsten sind).

0voto

btw Punkte 6726

Sie können auch auf dieser Website sehen, dass die schädlichsten Dinge, um die Sie sich kümmern werden, Code-Injektionen in Ihre Anwendung betreffen, also XSS (Cross-Site-Scripting) und SQL-Injektionen (die Vorschläge von @Patrick) sind Ihre größten Bedenken. Im Grunde genommen möchten Sie sicherstellen, dass, wenn Ihre Anwendung es einem Benutzer erlaubt, beliebigen Code einzufügen, dieser reguliert und getestet wird, um sicherzustellen, dass nur Dinge, die Sie sicher zulassen möchten (ein HTML-Link, ein Bild usw.), übergeben werden, und nichts anderes ausgeführt wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X