dedlfix: Sichere übergabe von Formalurdaten aus MySQL

Beitrag lesen

Hi!

Zu meiner frage, ist das Sicher oder habe ich noch etwas Wichtiges vergessen?

Sicherheit gibt es nicht in absoluter Ausführung. Bei Sicherheit muss immer gefragt werden, was oder wovor konkret abgesichert werden soll.

Bei der Sicherheit kommt es eher darauf an, wie du die Daten auswertest, die du über Usereingaben bekommst und benutzen willst.
Lässt du diese sicher in die Datenbank schreiben, ist eine erneute Sicherung bei der Ausgabe unnötig. (behaupte ich jetzt mal frech)

Meinst du, dass es ausreicht, mysql_real_escape_string() oder ähnliches anzuwenden und gut ist? Oder meintest du, dass die Daten gleich für das irgendwann später mal verwendete Ausgabemedium aufbereitet in der Datenbank stehen sollen?

Ersteres reicht nicht, weil für einen SQL-String andere Zeichen eine Sonderbedeutung haben als in einem HTML-Dokument oder einer URL. Das zweite ist im Allgemeinen ungünstig, weil die für die Maskierung im HTML- oder URL-Kontext zusätzlich eingefügten Zeichen als ganz normale Zeichen aus der Sicht der Datenbank gelten, und somit eine Sortierung oder andere Form der Stringverarbeitung beeinflussen.

Es ist beser, eine Behandlung nur für den aktuellen Kontext vorzunehmen und im Gegenzug diese auch konsequent anzuwenden, als irgendwann in der Vergangenheit für irgendeine Verarbeitung oder Ausgabe in der Zukunft etwas vorzubereiten, von der man nicht unbedingt weiß, ob diese sich nicht vielleicht mal ändert. Benötigt man die Daten später in anderem Kontext, hat man sie in falscher Form vorliegen und muss erst umkodieren. Das ist der allgemeinen Übersicht nicht sonderlich dienlich, wenn man nun ständig aufpassen muss, wo welche Daten herkommen und wie diese bereits vorbereitet sind oder nicht.

Lo!