pl: location.href#

Beitrag lesen

hi @Gunnar Bittersmann

https://example.net?foo=bar?query=123 ist dann wohl ein Parameter (Key foo mit dem Wert bar?query=123) und nicht wie beabsichtigt zwei (Key foo mit dem Wert bar und Key query mit dem Wert 123).

Korrekt! Was man auch jederzeit nachprüfen kann. Nun, unter den modernen Frameworks gibt es sehr viele die mit Mustererkennung arbeiten, Magento, Mojo, Dancer, .Net usw.

D.h., daß ein match dazu führt, daß die zum URL gehörige Klasse erkannt und eine bestimmte Aktion ausgelöst wird. Diese Mustererkennung führt aber auch dazu, daß QueryStrings matchen die so vom Programmierer gar nicht vorgesehen waren.

Dazu ist Folgendes zu sagen: Solange sich daraus kein Sicherheitsproblem ergibt ist das in Ordnung. Im Booleschen Kontext ist es egal ob ein Schlüsselparameter einmal oder mehrfach vorkommt solange die sich daraus ergebende Bedingung erfüllt ist.

In Fakt jedoch liegen gerade Sicherheitslücken darin begründet, daß man mit Mustererkennungen eben nicht alle Fälle abdecken kann, also auch die Bösartigen.

Vielleicht hat es sich ja auch schon herumgesprochen daß man mit URL Parametern keine gleichnamigen Funktionen aufrufen sollte 😉

MfG