>백엔드 개발 >PHP 튜토리얼 >OWASP에서 관리하는 PHP 보안 구성 치트 시트

OWASP에서 관리하는 PHP 보안 구성 치트 시트

藏色散人
藏色散人앞으로
2019-12-03 14:02:472156검색

OWASP에서 관리하는 PHP 보안 구성 치트 시트

소개

이 페이지의 목적은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 learnku.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제