Die größten Schwächen vieler PHP-Programme sind nicht Probleme mit der PHP-Sprache selbst, sondern werden durch das geringe Sicherheitsbewusstsein der Programmierer verursacht. Daher müssen Sie immer auf mögliche Probleme in jedem Codeabschnitt achten, um die möglichen Auswirkungen einer falschen Datenübermittlung zu ermitteln.
Beispiel #1 Gefährliche Variablenverwendung
<?php // 从用户目录中删除一个文件,或者……能删除更多的东西? unlink ($evil_var); // 记录用户的登陆,或者……能否在 /etc/passwd 添加数据? fwrite ($fp, $evil_var); // 执行一些普通的命令,或者……可以执行 rm -rf * ? system ($evil_var); exec ($evil_var); ?>
Achten Sie immer auf Ihren Code, um sicherzustellen, dass jede vom Client übermittelte Variable ordnungsgemäß überprüft wird, und stellen Sie sich dann die folgende Frage:
Wirkt sich dieses Skript nur auf die vorgesehenen Dateien aus?
Werden abnormale Daten nach der Übermittlung wirksam?
Kann dieses Skript für unbeabsichtigte Zwecke verwendet werden?
Kann dieses Skript mit anderen Skripten kombiniert werden, um schlechte Dinge zu bewirken?
Sind alle Transaktionen ausreichend dokumentiert?
Stellen Sie sich diese Fragen beim Schreiben von Code, sonst müssen Sie den Code möglicherweise neu schreiben, um die Sicherheit in Zukunft zu erhöhen. Wenn Sie auf diese Probleme achten, können Sie die Sicherheit des Systems möglicherweise nicht vollständig garantieren, aber Sie können die Sicherheit zumindest verbessern.
Denken Sie auch darüber nach, register_globals, magic_quotes oder andere Einstellungen zu deaktivieren, die das Programmieren komfortabler machen, aber die Legalität, Quelle und den Wert einer Variablen beeinträchtigen. Während der Entwicklung können Sie den Modus „error_reporting(E_ALL)“ verwenden, um zu überprüfen, ob Variablen vor der Verwendung überprüft oder initialisiert wurden, um zu verhindern, dass einige abnormale Daten durcheinander geraten.