Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Webprogrammierung und Sicherheit

Mitglied: Raphael

Raphael (Level 1) - Jetzt verbinden

01.06.2006, aktualisiert 09.01.2009, 20876 Aufrufe, 1 Danke

Worauf man als Webprogrammierer beim erstellen von Formularen, etc achten sollte bezüglich Sicherheit


Einleitung

In der letzten Zeit habe ich immer wieder festgestellt, dass viele Webseiten eigene Logins oder ähnliches benutzen, welche zum Tei gravierende Sicherheitsmängel aufweisen. Aus diesem Grund schreibe ich nun hier eine Anleitung, in der Hoffnung einige Webprorammierer für diese Thematik sensibilisieren zu können.

Grundlagen

Das Grundproblem ist, dass viele Webprogrammierer zuwenig Ahnung von der Technik haben wenn es um Datenübertragung im Web geht. Ein Webprogrammierer muss ja nicht gleich das ganze Protokoll kennen. Aber er sollte immerhin das Grundprinzip kennen. Es muss insbesondere Wissen wo und wie Daten zum Beispiel manipuliert werden können.

Was sind Manipulationen?

Bei Manipulationen handelt es sich in diesem Fall um Veränderungen von Daten welche vom Server an den Benutzer oder vom Benutzer an den Server gesendet werden.

Wie kommt es zu Manipulationen

Diese treten zum einen Unbeabsichtigt auf (zum Beispiel durch einen Proxy, welcher bestimmte Sachen filtert oder ähnliches) und zum anderen natürlich auch Beabsichtigt. Ein Hacker kann zum Beispiel einen eigenen Proxy bei sich installieren mit welchem er Die Daten zuerst beabreiten kann, bevor er sie an seinen Browser weiter sendet. Auf der anderen Seite kann er natürlich auch die Anfragen die der Browser an den Server sendet manipulieren. Dies ist zum Beispiel durch WebScarab möglich, welches durch The Open Web Application Security Project (OWASP) zur verfügung gestellt wird. Eine andere möglichkeit ist zum Beispiel mit Browser-Plugins (Tamper für Firefox) und ähnlichem. Für einen Programmierer wird es ziemlich mühsam sich nun mit diesen Programmen vertraut zu machen. Es gibt auch weitaus einfachere Methoden als einen Proxy, eben zum Beispiel Browser-Plugins.
Eine weitere Möglichkeit bieten Userscripts. Mit ihnen lassen sich Webseiten beliebig verändern, während sie betrachtet werden. Über Greasemonkey (für Firefox) oder Trixie (für den IE) lassen sich diese Scripts in den Browser integrieren. Ich habe ein Beispiel-Script auf meine Homepage gestellt, welches deaktivierte Felder und Buttons aktiviert, sowie versteckte Felder anzeigt. Ihr findet das Script hier: http://www.black-silence.ch/userscripts/formhelp.user.js

Wie funktionieren Manipulationen genau bzw. was ist daran Schlimm?

Das wichtigste für Programmierer kommt nun in diesem Abschnitt. Ich versuche kurz zu erklären was an diesen Manipulationen genau eine Sicherheitslücke darstellt.
Im Grunde genommen dürfen solche Manipulationen nichts machen. Dazu muss der Code der Webseite (sei das ASP, PHP oder Perl) entsprechend programmiert sein. Ist dies nicht der Fall, können Hacker unter umständen Dinge anstellen die man nicht will. Ich gebe ein Beispiel:

Auf einer Homepage gibt es eine Kundenverwaltung. Wenn der Admin sich einlogt, kann er durch alle Benutzer Blättern und durch Buttons einzelne Benutzer zum Beispiel löschen. Bei den Normalen Benutzer wird dann der Button einfach grau (also deaktiviert). Wenn ein normaler Benutzer nun diesen Button aktivieren kann (oder zumindest seinem Browser vorgaukeln kann der Button sie aktiviert), dan hat der Benutzer quasi Adminrechte.

Ein anderes Beispiel:

Wieder eine Benutzer-Verwaltung. Es wird eine Liste ausgegeben wo jeder Benutzer aufgeführt ist. 2 Felder eines für seinen Namen und eines (mit sternchen) für das Passwort welches aus der Datenbank eingefüllt wird. Eigentlich wäre das Passwort ja nicht lesbar (sind ja nur Sternchen ;)) wenn man aber im Quelltext nachschaut steht es im Klartext da.

Dies sind viele kleine Details ... im Grunde genommen sind einzelne solche Punkte nicht schlimm ... es kann aber unter Umständen dazu führen, dass ein Benutzer mehr machen kann als er sollte.

Ein anderes Problem können versteckte Felder sein in welchen bestimte Informationen übertragen werden (wie Session-IDs, Rechte, usw).
Auf versteckte Felder sollte unbedingt verzichtet werden, sofern es nicht anders geht. Vorallem sollten Rechte nicht über versteckte Felder übertragen werden. Was hier noch erwähnt werden sollte sind die Cookies. Auch ihn ihnen werden manchmal sensible Informationen gespeichert. Cookies können eben so bearbeitet werden die so ziemlich jede information die Client-Seitig gespeichert wird.

Hier kommen wir langsam zum nächsten Thema:

Was kann man dagegen machen?

Als erstes: möglichst wenig Informationen in Cookies und versteckten Feldern, etc speichern. So viel wie möglich auf Serverseitige Variabeln (Session-Variabeln oder ähnliches) verlagern. Dies schliesst Manipulation im Grunde genommen aus.
Als zweites: Jede Eingabe die von einem Benutzer kommt muss überprüft werden ob sie auch zulässig ist. (Alles ist Böse, solange nicht das Gegenteil bewiesen ist)
Drittens: Knöpfe die ein Benutzer nicht drücken darf muss er auch nicht sehen, also sollten sie gar nicht erst angezeigt werden
Viertens: Felder in die man nicht reinschrieben darf sollten weggelassen werden und der Text sollte direkt drgestellt werden. (Wenn man einen Rahmen darum herum will kann man ihn ja mithilfe einer Tabelle oder CSS anzeigen)
So ... ich denke die grundlegensten Dinge wurden gesagt. Das Thema ist riesig und man könnte fast endlos weiterschreiben.
Ich hoffe der Text war einigermassen verständlich und ich konnte ein paar Denkanstösse geben.

Viele Grüsse
Ähnliche Inhalte
Sicherheit
Microsoft und Skype: Sicherheit
Information von kgbornSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Sicherheitsgrundlagen

BSI-Chef: IT-Sicherheit muss für Firmen wichtiger werden

Information von Penny.CilinSicherheitsgrundlagen8 Kommentare

Interessantes Thema, welches bei zu vielen Unternehmen stiefmütterlich behandelt wird: BSI-Chef: IT-Sicherheit muss für Firmen wichtiger werden

LAN, WAN, Wireless

WPA2 und WLAN-Sicherheit: Direkter Angriff auf WLAN-Router

Information von magicteddyLAN, WAN, Wireless

Siehe Bericht auf Heise, WPA2 und WLAN-Sicherheit: Direkter Angriff auf WLAN-Router Laut Bericht wurde eine direkte Angriffsmöglichkeit auf verwundbare ...

Verschlüsselung & Zertifikate

Neue Adware entdeckt: Privdog hebelt die HTTPS-Sicherheit komplett aus

Information von FrankVerschlüsselung & Zertifikate5 Kommentare

Es sieht so aus, als hätte Comodo, eine der größten Zertifizierungsstellen für TLS-Zertifikate, auch eine Adware verbreitet: Privdog. Diese ...

Neue Wissensbeiträge
Humor (lol)
Administrator.de Perlen
Tipp von DerWindowsFreak2 vor 2 TagenHumor (lol)3 Kommentare

Hallo, Heute beim stöbern auf dieser Seite bin auf folgenden Thread aus dem Jahre 2006 gestossen: Was meint ihr? ...

Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 3 TagenErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 6 TageniOS5 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 7 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
PCIe 1.0 Grafikkarte für 3840x2160
Frage von Windows10GegnerGrafikkarten & Monitore30 Kommentare

Hallo, mein Vater hat einen neuen Monitor gekauft, welcher eine native Auflösung von 3840*2160 hat. Diese muss jetzt auch ...

Windows Server
Dienstnamen und oder Deutsche und Englische Beschreibung in services.msc gleichzeitig anzeigen
gelöst Frage von vafk18Windows Server23 Kommentare

Guten Morgen, die Suche nach Diensten in services.msc gestaltet sich immer wieder schwierig, weil mir je nach Aufgabe die ...

Windows 10
Windows Enterprise 1809 Eval nicht bootbar
Frage von Sunny89Windows 1022 Kommentare

Hallo zusammen, bevor ich mich jetzt noch stundenlang rumärger wollte ich euch fragen, ob Ihr die gleichen Probleme habt ...

JavaScript
Javascript: WebSql
gelöst Frage von internet2107JavaScript14 Kommentare

Guten Morgen zusammen, zunächst einmal einen schönen dritten Advent. Ich habe ein Problem mit Javascript und WebSQL. Bisher habe ...