dedlfix: substr

Beitrag lesen

Hi!

[2] schädlich deshalb, weil es die Herkunft verschleiert: $link sieht man nicht mehr an, dass es eine potentiell gefährliche Eingabe von außen ist. $_GET['link'] dagegen schon.

Das Hauptproblem ist eher, dass mit steigender Projektgröße durch die zusätzlichen Variablen die Übersicht leidet. Bei $_GET['link'] ist die Herkunft und Aufgabe in der Regel klar, bei $link hingegen müsste man gegebenenfalls erst nachforschen, wie und wo sie entstanden ist.

Gefährlich werden die Inhalte nur, wenn man den Kontextwechsel missachtet. Für den sind aber auch alle anderen variablen Werte als potentiell "gefährlich" einzustufen, auch die, die aus "befreundeten" Systemen kommen, wie dem eigenen DBMS.

Was ich sagen will: Man sollte das Augenmerk der Gefährlichkeit nicht zu einseitig auf direkte Nutzereingaben legen, das lenkt sonst womöglich von den anderen Gefahrenpotentialen ab. Oder anders: Der Inhalt einer Variablen kann mir aus technischer Sicht vollkommen egal sein, wenn ich die Regeln des Ausgabemediums ausreichend berücksichtige, in das dieser Inhalt eingefügt werden soll.

Lo!