MB: Verwendung von filter_input für HTTP Request nötig?

moin community,

wie wichtig und sicher ist filter_input() für ein HTTP Request? Leider ist auf php.net nur die funktionsweise von dieser Funktion beschrieben, nicht aber der Gebrauch.

Worin z.B. besteht der unterschied, ob ich nun den Rückgabewert von filter_input( INPUT_SERVER, 'REQUEST_URI' ) oder $_SERVER[ 'REQUEST_URI' ] habe? NetBeans 8.2 meckert "man solle keine Superglobalen verwenden". Ich frag mich warum? Es ist doch alles mit .htaccess abgedeckt, wenn man die Datei richtig konfiguriert, versteht sich.

Ich sehe es ein das vermutlich in C programmierte Funktionen weitaus performanter sind als zu Fuß mit PHP. Jedoch weis ich wirklich nicht, was an einem String der als der selbe String wieder herraus kommt, anders sein soll bezogen auf mein Beispiel.

vlg MB

P.S.: Ich hab die Frage im vergangenem Thread angerissen aber nicht so konkret formuliert

  1. Hallo MB,

    freut mich, dass noch jemand Netbeans benutzt 😀. Ich finde diese IDE cool.

    filter_input(INPUT_SERVER, 'REQUEST_URI') setzt FILTER_DEFAULT als 3. Parameter und das ist lt. php.net identisch zu FILTER_UNSAFE_RAW - also kein Filter. Das ist garantiert nicht nötig.

    Nötig ist natürlich, allen Superglobal-Inhalten mit gebührender Vorsicht zu begegnen, teilweise kommen sie vom User und sind daher potenziell böse.

    Allerdings finde auch ich, dass das hartnäckige Rumreiten auf filter- oder is- Funktionen übertrieben ist. Wenn ich $_SERVER['REQUEST_URI'] haben will, dann will ich's haben, und wenn ich's gefiltert haben will, dann rauch ich's halt mit Filter.

    Wenn mir die Filter-Funktionen Mehrwert bieten, gut, dann verwende ich sie gerne. Wenn ich mir aber einen abbreche, um meine Aufgabe mit den Filtern zu lösen - oder wenn die Filter nicht das filtern, was ich gern gefiltert hätte - dann pfeif ich halt drauf und mach es selbst. Und nur deshalb filter_input(INPUT_SERVER, 'REQUEST_URI', FILTER_UNSAFE_RAW) aufrufen, damit NetBeans sich nicht künstlich aufregt? Nö. Dann pfeif ich auf die Warnung. Funktionsaufrufe sind in PHP immer teuer.

    Man kann diese Warnung auch abschalten (Tools -> Options -> Editor -> Hints). Dann ist Ruhe - aber dann muss man die Problematik so weit verstanden haben, dass man weiß, was man tut.

    Leider gibt's in Netbeans ein Feature (noch?) nicht, das ich vom Resharper in Visual Studio kenne. Der mault auch über Gott und die Welt - aber man kann vor die Zeile einen Disable-Kommentar setzen, dahinter noch eine Begründung schreiben, warum man es unbedingt so will, und dann ist der Bursche ruhig.

    Rolf

    --
    Dosen sind silbern