Einführung
Der Zweck dieser Seite besteht darin, denjenigen zu helfen, die PHP und die Webserver, auf denen es läuft, konfigurieren, um dies sicherzustellen seine Sicherheit.
Unten finden Sie die korrekten Konfigurationsinformationen für die php.ini-Datei.
php.ini
Einige der folgenden Einstellungen müssen an Ihr System angepasst werden, insbesondere session.save_path, session.cookie_path (zum Beispiel: /var/www /mysite) und session.cookie_domain (zum Beispiel: exampleSite.com).
Sie sollten außerdem PHP 7.2 oder höher ausführen. Wenn Sie PHP 7.0 und PHP 7.1 verwenden, werden Sie an einigen Stellen unten leicht unterschiedliche Werte verwenden (siehe Inline-Kommentare).
Schauen Sie sich abschließend die PHP-Dokumentation an, um eine Referenz zu jedem Wert in der Konfigurationsdatei php.ini zu finden.
Eine Kopie der folgenden Konfiguration in einer vorgefertigten php.ini-Datei finden Sie hier.
PHP-Fehlerbehandlung
expose_php = Off error_reporting = E_ALL display_errors = Off display_startup_errors = Off log_errors = On error_log = /valid_path/PHP-logs/php_error.log ignore_repeated_errors = Off
Bitte beachten Sie: Sie müssen display_errors in der Produktionsumgebung auf Aus setzen, und es ist am besten, eine gute Angewohnheit zu entwickeln, diese Protokolle zu überprüfen häufig.
Gemeinsame PHP-Einstellungen
doc_root = /path/DocumentRoot/PHP-scripts/ open_basedir = /path/DocumentRoot/PHP-scripts/ include_path = /path/PHP-pear/ extension_dir = /path/PHP-extensions/ mime_magic.magicfile = /path/PHP-magic.mime allow_url_fopen = Off allow_url_include = Off variables_order = "GPCS" allow_webdav_methods = Off session.gc_maxlifetime = 600
allow_url_* ist anfällig für vollständige LFI- und RFI-Schwachstellen.
PHP-Upload-Dateiverarbeitung
file_uploads = On upload_tmp_dir = /path/PHP-uploads/ upload_max_filesize = 2M max_file_uploads = 2
Wenn Ihre Anwendung die Datei-Upload-Funktion nicht verwendet oder die einzige Möglichkeit für Benutzer, Uploads einzugeben, ein Formular ist, das dies nicht tut Dokumentanhänge enthalten Zum Senden sollte file_uploads auf Aus gesetzt sein.
Verarbeitung ausführbarer PHP-Dateien
enable_dl = Off disable_functions = system, exec, shell_exec, passthru, phpinfo, show_source, highlight_file, popen, proc_open, fopen_with_path, dbmopen, dbase_open, putenv, move_uploaded_file, chdir, mkdir, rmdir, chmod, rename, filepro, filepro_rowcount, filepro_retrieve, posix_mkfifo # 请查看:http://ir.php.net/features.safe-mode disable_classes =
Die oben genannten Methoden und Klassen sind in PHP gefährlich. Nicht verwendete Methoden und Klassen sollten Sie deaktivieren.
PHP-Sitzungsbehandlung
Es gibt einige Werte, die in den Sitzungseinstellungen beachtet werden müssen. Es ist eine gute Übung, den Sitzungsnamen zu ändern zu einem neuen.
session.save_path = /path/PHP-session/ session.name = myPHPSESSID session.auto_start = Off session.use_trans_sid = 0 session.cookie_domain = full.qualified.domain.name #session.cookie_path = /application/path/ session.use_strict_mode = 1 session.use_cookies = 1 session.use_only_cookies = 1 session.cookie_lifetime = 14400 # 4小时 session.cookie_secure = 1 session.cookie_httponly = 1 session.cookie_samesite = Strict session.cache_expire = 30 session.sid_length = 256 session.sid_bits_per_character = 6 # PHP 7.2+ session.hash_function = 1 # PHP 7.0-7.1 session.hash_bits_per_character = 6 # PHP 7.0-7.1
Mehr Prüfungen auf Sicherheitsrisiken
session.referer_check = /application/path memory_limit = 50M post_max_size = 20M max_execution_time = 60 report_memleaks = On track_errors = Off html_errors = Off
Englische Originaladresse:
https://github.com/OWASP/ CheatSheetSeries/blob/master/cheatsheets /PHP_Configuration_Cheat_Sheet.md
Das obige ist der detaillierte Inhalt vonSpickzettel zur PHP-Sicherheitskonfiguration, verwaltet von OWASP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!