Sind einzelne Einträge aus Datenbanken erst mal weg, ist das Jammern groß. Keiner will es gewesen sein.
Wichtig ist also eine exakte Protokollierung Anwendungsseitig. Wer hat wann wieviel gelöscht? Daraus ergibt sich auch die Forderung nach eindeutigen Nutzerzugängen. Da darf sich nicht mehr jeder unter dem gleichen Account anmelden.
Protokolliertes Löschen
Datenbank Abfragen ohne Spaltennamen
Ein schlechtes Beispiel ist sowas hier:
SELECT tabelle.* FROM tabelle
Man kann nicht vorhersagen, welche Spalten in welcher Reihenfolge zu erwarten sind. Falls jemand nun die Tabelle um ein Feld erweitert, kann die Abfrage sich ganz anders verhalten.
Wenn nun auch noch beim Zugriff nur über Spaltennummern gegangen wird, ist es komplett unverhersagbar. Nur mit benannten Spalten [...]
[c't] Pentagon blamiert sich mit geschwärztem PDF-Dokument
Pentagon blamiert sich mit geschwärztem PDF-Dokument
US-Regierungsstellen hatten entscheidende Teile des Dokumentes in Microsoft Word zunächst geschwärzt und das Dokument dann ausweislich der Metadaten mit PDFMaker 6.0 exportiert. Dabei blieben die geschwärzten Teile als Text erhalten und lassen sich über die Zwischenablage wieder in einen beliebigen Texteditor einfügen. Die Formatierung geht dabei entweder verloren oder lässt [...]
[c't] DHL
DHL schließt Sicherheitslücke im Online-Service der Packstationen
Ursache der Sicherheitslücke war die fehlende Prüfung übertragener Postnummern in den Formularen zur Änderung der Kundendaten. Hatte sich ein Anwender der Packstation am Server authentifiziert, konnte er durch Ändern der Postnummer im Formular beim Zurücksenden beliebige andere Konten mit eigenen Daten überschreiben.
URL Parameter
Böse Dinger sowas. Immer jeden erwarteten Wert auf eine Positivliste hin über einen Regulären Ausdruck hin prüfen. IDs dürfen also nur 0-9 enthalten usw.
Session Werte
Daten einer Sitzung gehören auf den Server und niemals in hidden Fields im HTML. Dort gehört höchstens die SitzungsID hinein, falls keine Cookies gehen oder so.
Mail Formulare
Die Ziel eMail niemals im Formular mitgeben. Sonst kann Spam verschickt werden. Der Empfänger muß erst im Server generiert werden.
XSS vermeiden
Am besten niemals JavaScript in Nutzereingaben zulassen. CrossSideScripting ist sonst fast unvermeidbar. Also kein HTML in Textblöcken, sondern eine eigene Formatierung wie BBCode oder Wiki einführen.
Kommentar Spam, Botvermeidung
Wenn der Nutzer was eingeben darf, dann nur angemeldet, oder nach einer CAPCHA (Bild mit Anweisung).
Anmeldefehler vertuschen
Keine Unterscheidung erlauben zwischen falschem User und falschem Passwort. Das kann intern gelogged werden, darf aber dem potentiellen Angreifer nicht sichtbar gemacht werden.
