PHP 보안 설정 최적화
1.PHP 오류 출력 차단
/etc/php.ini
(기본 설정 파일 위치)에서 다음 설정 값 을 Off 로 변경 합 니 다.
display_errors=Off
잘못된 스 택 정 보 를 웹 페이지 에 직접 출력 하여 해커 가 관련 정 보 를 이용 하 는 것 을 방지 하지 마 세 요.정확 한 방법 은:
오류 로 그 를 로그 파일 에 써 서 문 제 를 쉽게 찾 을 수 있 습 니 다.
2.PHP 버 전 차단
기본적으로 PHP 버 전 은 다음 과 같이 되 돌아 오 는 헤더 에 표 시 됩 니 다.
Response Headers X-powered-by: PHP/7.2.0
php.ini 의 다음 설정 값 을 Off 로 변경 합 니 다.
expose_php=Off
3.전역 변 수 를 닫 습 니 다.전역 변 수 를 열 면 일부 폼 이 제출 한 데 이 터 를 전역 변수 로 자동 으로 등록 합 니 다.코드 는 다음 과 같 습 니 다:
<form action="/login" method="post">
<input name="username" type="text">
<input name="password" type="password">
<input type="submit" value="submit" name="submit"></form>
전역 변 수 를 열 면 서버 쪽 PHP 스 크 립 트 는 username 과 password 로 사용자 이름과 비밀 번 호 를 가 져 올 수 있 습 니 다.이 는 큰 스 크 립 트 주입 위험 을 초래 할 수 있 습 니 다.오픈 방법 은 php.ini 에서 다음 과 같이 수정 합 니 다.
register_globals=On
닫 기 를 권장 합 니 다.매개 변 수 는 다음 과 같 습 니 다.
register_globals=Off
닫 히 면 P OST,GET、$_REQUEST 에서 관련 인 자 를 가 져 옵 니 다.4.파일 시스템 제한
오픈basedir 는 PHP 가 접근 할 수 있 는 시스템 디 렉 터 리 를 제한 합 니 다.
아래 스 크 립 트 코드(hack.php)를 제한 하지 않 으 면 시스템 암 호 를 가 져 올 수 있 습 니 다.
<?php
echo file_get_contents('/etc/passwd');
설정 하면 오류 가 발생 합 니 다.관련 정 보 를 표시 하지 않 고 시스템 디 렉 터 리 b 가 불법 으로 접근 하지 않도록 합 니 다.
PHP Warning: file_get_contents(): open_basedir restriction in effect. File(/etc/passwd) is not within the allowed path(s): (/var/www) in /var/www/hack.php on line 3
Warning: file_get_contents(): open_basedir restriction in effect. File(/etc/passwd) is not within the allowed path(s): (/var/www) in /var/www/hack.php on line 3 PHP Warning: file_get_contents(/etc/passwd): failed to open stream: Operation not permitted in /var/www/hack.php on line 3
Warning: file_get_contents(/etc/passwd): failed to open stream: Operation not permitted in /var/www/hack.php on line 3
설정 방법 은 다음 과 같 습 니 다.
open_basedir=/var/www
5.원 격 자원 접근 금지.
allow_url_fopen=Off allow_url_include=Off
기타 제3자 보안 확장6.Suhosin。
4.567914.PHP 프로그램의 보호 시스템 입 니 다.서버 와 사용 자 를 보호 하고 PHP 프로그램 과 PHP 핵심 에서 알 고 있 거나 알 수 없 는 결함 을 막 기 위해 설계 되 었 습 니 다.Suhosin 은 두 개의 독립 된 부분 이 있 으 며 사용 시 따로 사용 하거나 공동으로 사용 할 수 있 습 니 다.
첫 번 째 부분 은 PHP 핵심 에 사용 되 는 패 치 입 니 다.버퍼 가 넘 치 거나 문자열 을 포맷 하 는 약점 을 막 을 수 있 습 니 다.(이것 은 필수 입 니 다!)
두 번 째 부분 은 강력 한 PHP 확장(확장 모드 가 좋 고 설치 가 편리 합 니 다.)입 니 다.다른 모든 보호 조 치 를 포함 합 니 다.
설치 확장
wget http://download.suhosin.org/suhosin-0.9.37.1.tar.gz
tar zxvf suhosin-0.9.37.1.tar.gz
cd suhosin-0.9.37.1/
phpize
./configure --with-php-config=/usr/local/bin/php-config
make
make install
php.ini suhosin.so
extension=suhosin.so
특성시 뮬 레이 터 보호 모드
런 타임 보호
암호 화 쿠키
다양한 종류의 빈틈 포함 방지(원 격 URL 포함 허용 하지 않 음(블랙/화이트 리스트);업로드 한 파일 을 포함 할 수 없습니다.디 렉 터 리 크로스 공격 방지)
preg 금지 허용replace()
eval()함수 금지 허용
최대 실행 깊이 를 설정 하여 무한 재 귀 를 방지 합 니 다.
모든 vhost 에서 흑백 명단 설정 지원
코드 실행 에 분 리 된 함수 흑백 명단 을 제공 합 니 다.
HTTP 응답 분할 구멍 방지
스 크 립 트 방지 memory제한 옵션
함수 extract(),import 와 같은 PHP 를 보호 하 는 슈퍼 글로벌request_vars()
mail()함수 의 새 줄 공격 방지
preg 방지replace()의 공격,
세 션 보호
세 션 데이터 암호 화
세 션 납치 방지
긴 session id 방지
악의 적 인 session id 방지
4.567914.안의 데 이 터 는 보통 서버 에 명문 으로 저장 된다.여기 서버 에서 복호화$SESSION。이렇게 하면 Session 의 핸들 을 Memcache 나 데이터베이스 에 저장 할 때 쉽게 무 너 지지 않 고 우리 의 session 데 이 터 는 민감 한 필드 를 저장 하 는 경우 가 많 습 니 다.
이 기능 은 부족 한 상태 에서 사용 되 며 php.ini 를 통 해 수정 할 수 있 습 니 다.
suhosin.session.encrypt = On
suhosin.session.cryptkey = zuHywawAthLavJohyRilvyecyondOdjo
suhosin.session.cryptua = On
suhosin.session.cryptdocroot = On
;; IPv4 only
suhosin.session.cryptraddr = 0
suhosin.session.checkraddr = 0
쿠키 암호 화쿠키 가 클 라 이언 트 브 라 우 저 에서 전송 하 는 HTTP 헤더 도 명문 화 되 어 있다.암호 화 된 쿠키 를 통 해 프로그램 이 많은 공격 을 하 는 것 을 보호 할 수 있 습 니 다.예 를 들 어
Cookie 변경:공격 자 는 다른 합 리 적 인 쿠키 값 을 추측 하여 프로그램 을 공격 하려 고 시도 할 수 있 습 니 다.
크로스 애플 리 케 이 션 쿠키 사용:설정 되 지 않 은 애플 리 케 이 션 은 같은 세 션 저장 소 를 가지 고 있 을 수 있 습 니 다.모든 세 션 이 기본적으로/tmp 디 렉 터 리 에 저장 되 어 있 으 면 한 애플 리 케 이 션 의 쿠키 는 다른 애플 리 케 이 션 에 다시 사용 되 지 않 을 수 있 습 니 다.암호 화 키 만 다 르 면.
php.ini 에서 쿠키 암호 화 설정:
suhosin.cookie.encrypt = On
;; the cryptkey should be generated, e.g. with 'apg -m 32'
suhosin.cookie.cryptkey = oykBicmyitApmireipsacsumhylWaps1
suhosin.cookie.cryptua = On
suhosin.cookie.cryptdocroot = On
;; whitelist/blacklist (use only one)
;suhosin.cookie.cryptlist = WALLET,IDEAS
suhosin.cookie.plainlist = LANGUAGE
;; IPv4 only
suhosin.cookie.cryptraddr = 0
suhosin.cookie.checkraddr = 0
Blocking Functions
## PHP Session tmp
ll -rt /tmp | grep sess
## sesson
cat sess_ururh83qvkkhv0n51lg17r4aj6
//
## sesson
cat sess_ukkiiiheedupem8k4hheo0b0v4
//
차단 기능화이트 리스트
##
suhosin.executor.func.whitelist = htmlentities,htmlspecialchars,base64_encode
suhosin.executor.eval.whitelist = htmlentities,htmlspecialchars,base64_encode
<?php
echo htmlentities('<test>');
eval('echo htmlentities("<test>");');
블랙리스트
##
suhosin.executor.func.blacklist = assert,unserialize,exec,popen,proc_open,passthru,shell_exec,system,hail,parse_str,mt_srand
suhosin.executor.eval.whitelist = assert,unserialize,exec,popen,proc_open,passthru,shell_exec,system,hail,parse_str,mt_srand
suhosin.simulation = 1
suhosin.log.file = 511
suhosin.log.file.name = /tmp/suhosin-alert.log
기타 설정 항목
suhosin.executor.include.max_traversal ,
suhosin.executor.include.whitelist URL,
suhosin.executor.include.blacklist URL,
suhosin.executor.disable_eval = On eval
suhosin.upload.max_uploads
suhosin.upload.disallow_elf
suhosin.upload.disallow_binary
suhosin.upload.remove_binary
suhosin.upload.verification_script , webshell
Suhosin 을 사용 하면 오류 로 그 를 얻 을 수 있 습 니 다.이 로 그 를 시스템 로그 에 넣 을 수도 있 고 다른 임의의 로그 파일 에 쓸 수도 있 습 니 다.모든 가상 호스트 에 블랙리스트 와 화이트 리스트 를 만 들 수 있 습 니 다.
GET 와 POST 요청,파일 업로드,쿠키 를 걸 러 낼 수 있 습 니 다.
암호 화 된 세 션 과 쿠키 를 전송 할 수 있 고 전송 할 수 없 는 저장 소 온라인 등 을 설정 할 수 있 습 니 다.
원본 PHP 강화 패 치 와 는 달리 Suhosin 은 Zend Optimizer 와 같은 제3자 확장 소프트웨어 에 호 환 될 수 있 습 니 다.
여기 서 PHP 보안 설정 최적화 에 관 한 상세 한 설명 은 여기까지 입 니 다.더 많은 관련 PHP 보안 설정 최적화 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.