소개
이 페이지의 목적은 PHP와 이를 실행하는 웹 서버를 구성하는 사용자가 보안을 보장하도록 돕는 것입니다.
아래에서 php.ini 파일에 대한 올바른 구성 정보를 찾을 수 있습니다.
php.ini
아래 설정 중 일부는 시스템에 맞게 조정해야 합니다. 특히 session.save_path, session.cookie_path(예: /var/www/mysite) 및 session.cookie_domain(예: exampleSite.com) .
PHP 7.2 이상도 실행해야 합니다. PHP 7.0과 PHP 7.1을 실행하는 경우 아래 몇 군데에서 약간 다른 값을 사용하게 됩니다(인라인 주석 참조).
마지막으로, php.ini 구성 파일의 각 값에 대한 참조는 PHP 문서를 확인하세요.
여기에서 미리 만들어진 php.ini 파일에서 다음 구성의 복사본을 찾을 수 있습니다.
PHP 오류 처리
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
참고: 프로덕션 환경에서는 display_errors를 Off로 설정해야 하며 이러한 로그를 자주 확인하는 좋은 습관을 기르는 것이 가장 좋습니다.
PHP 일반 설정
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_*은 LFI 및 RFI 전체 취약점에 취약합니다.
PHP 업로드 파일 처리
file_uploads = On upload_tmp_dir = /path/PHP-uploads/ upload_max_filesize = 2M max_file_uploads = 2
애플리케이션이 파일 업로드 기능을 사용하지 않거나 사용자가 업로드를 입력할 수 있는 유일한 방법이 문서 첨부 파일이 포함되지 않은 양식 제출을 통해서인 경우 file_uploads를 끄기로 설정해야 합니다.
PHP 실행 파일 처리
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 =
위 내용은 PHP에서 위험한 메소드와 클래스입니다. 사용되지 않는 메서드와 클래스를 비활성화해야 합니다.
PHP 세션 처리
세션 설정에서 주의해야 할 몇 가지 값이 있습니다. session.name을 새 이름으로 변경하는 것이 좋습니다.
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
추가 보안 확인 risk
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
원문 영문 주소:
https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/PHP_Configuration_Cheat_Sheet.md
위 내용은 OWASP에서 관리하는 PHP 보안 구성 치트 시트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!