Als Webmaster muss ich gefährdete Skripte identifizieren.
Ich schreibe immer PHP-Code, der Benutzereingaben filtern. Ich traue niemals Benutzereingaben zu, wähle welche Zeichen gültig sind (im Gegensatz zu einigen), benutze php native Filterfunktion (filter_input
) oder benutze lib/frameworks Dienstprogramme.
Heute wurde ich für Sicherheitslücken in heruntergeladenen Module Suche und diesen Code gefunden:
if (isset($_GET['css_file_name'])) {
$cssFileName = _PS_MODULE_DIR_ . DS . "xxxx" . DS . "css" . DS . $_GET['css_file_name'] . ".css";
echo file_get_contents($cssFileName);
}
echo "";
Ich denke, das ist unsicher, es die Grundregel nicht Nie Eingabe Vertrauen Benutzer respektieren. Also habe ich beschlossen, es zu beweisen, ich habe versucht, DEL ASCII-Zeichen hinzuzufügen, um die .css
zu entfernen und in der Lage sein, jede Datei (eine PHP-Datei mit Anmeldeinformationen zum Beispiel) zu finden, aber ich war nicht erfolgreich.
Also meine Frage ist: Ist dieser Code wirklich so unsicher? Ist es möglich, eine PHP-Datei mit ihm zu greifen (können Sie es beweisen?)
Wenn wir nicht mit einem Exploit kommen können, ist es dann sicher? Ihre Frage ist interessant, aber Sicherheit ist mehr eine Art zu denken, und Sie selbst sind im Zweifel, ob das sicher ist oder nicht. Dies ist ein deutliches Zeichen, dass eine Whitelist in diesem Fall angebracht wäre, da es schwer ist, zu beweisen, dass es sicher ist. – martinstoeckli