Ich habe diese Warnmeldung auf Netbeans 7.4 für PHP erhalten, während ich $ _POST , $ _GET , $ _SERVER , .... verwende.
Greifen Sie nicht direkt auf das Superglobal $ _POST-Array zu
Was heißt das? Was kann ich tun, um diese Warnung zu korrigieren?
Bearbeiten: Der Ereignis-Beispielcode zeigt diese Warnung weiterhin an.
php
netbeans
superglobals
netbeans-7.4
Kannika
quelle
quelle
Antworten:
filter_input(INPUT_POST, 'var_name')
statt$_POST['var_name']
filter_input_array(INPUT_POST)
statt statt$_POST
quelle
$name = filter_input(INPUT_POST, $_POST["name"]);
.filter_input(INPUT_POST, 'var_name', FILTER_SANITIZE_NUMBER_INT)
Obwohl etwas spät, bin ich auf diese Frage gestoßen, als ich nach der Lösung für das gleiche Problem gesucht habe. Ich hoffe, dass sie hilfreich sein kann ...
Ich befand mich in derselben Dunkelheit wie du. Ich habe gerade diesen Artikel gefunden, der einige neue Hinweise erklärt, die in NetBeans 7.4 eingeführt wurden, einschließlich dieses:
https://blogs.oracle.com/netbeansphp/entry/improve_your_code_with_new
Der Grund, warum es hinzugefügt wurde, ist, dass Superglobale normalerweise mit Benutzereingaben gefüllt sind, denen niemals blind vertraut werden sollte. Stattdessen sollte eine Art Filterung durchgeführt werden, und das schlägt der Hinweis vor. Filtern Sie den superglobalen Wert, falls er einen vergifteten Inhalt hat.
Zum Beispiel, wo ich hatte:
Ich habe stattdessen gesagt:
Sie haben das filter_input- und filter-Dokument hier:
http://www.php.net/manual/en/function.filter-input.php
http://www.php.net/manual/en/filter.filters.php
quelle
Ich stimme den anderen Antwortenden zu, dass es in den meisten Fällen (fast immer) notwendig ist, Ihre Eingaben zu bereinigen.
Beachten Sie jedoch einen solchen Code (für einen REST-Controller):
Es wäre nicht sehr nützlich, hier Desinfektion anzuwenden (obwohl es auch nichts kaputt machen würde).
Befolgen Sie also die Empfehlungen, aber nicht blind - verstehen Sie lieber, warum sie dafür sind :)
quelle
Benutz einfach
filter_input (INPUT_METHOD_NAME, 'var_name') anstelle von $ _INPUT_METHOD_NAME ['var_name'] filter_input_array (INPUT_METHOD_NAME) anstelle von $ _INPUT_METHOD_NAME
z.B
anstatt
Und verwenden
anstatt
NB: Auf alle anderen Super Global-Variablen anwenden
quelle
Hier ist ein Teil einer Zeile in meinem Code, die die Warnung in NetBeans angezeigt hat:
Nachdem ich viel recherchiert und gesehen hatte, wie es unzählige Möglichkeiten gibt, dieses Array zu filtern, fand ich eine, die einfach war. Und mein Code funktioniert und NetBeans freut sich:
quelle