nginx + fastcgi php 설정 에서 안전 한 파일 저장 경로 설정

2615 단어 nginx
이 설정 도 최근 에서 온 것 입 니 다.
80 후 보안 팀 nginx 구멍 노출: 백만 대 서버 파급과학 기술텐 센트 망
설정 을 잘못 하면 불필요 한 번 거 로 움 을 가 져 올 수도 있다 는 생각 이 들 었 다.본 고 는 사용자 가 파일 을 저장 하고 저장 파일 을 독립 적 으로 실행 할 수 없 으 며 서버 에서 파일 을 업로드 하 는 접근 을 제한 하 는 방법 에 대해 서 입 니 다.
 
1。디 렉 터 리 구조 설정 은 파일 을 저장 하고 파일 을 쓸 수 있 는 디 렉 터 리 를 독립 시 키 는 것 이 좋 습 니 다. 플랫폼 프로그램 파일 과 같은 디 렉 터 리 가 아 닙 니 다.
php 프로그램 은; /home/www/html/www.a.com/cgi/.....
정적 파일 은: / home / www / html / www. a. com / upload /  만약 조건 이 있다 면, 가장 좋 은 것 은: / static / upload / www. a. com / 새로운 구역 을 독립 하 는 것 이다.
 
php 프로그램 영역 권한 을 쓰기 동작 (읽 기, 실행) 을 할 수 없 으 며, 다음: 독립 된 구역 으로 나 누 어 읽 기, 쓰기 가 가능 합 니 다.
 
 
2. 일반적인 예 를 살 펴 본다.
 

  
  
location ~* \.php$ {
# :upstrem
proxy_pass http://myweb;
}

location ^~ /upload/ {
alias /static/upload/www.a.com/;
}

 
안전 한 location 배합 에 관 해 서 는 "nginx location 설정 논술 우선 순위 사용 설명 - 부당 하면 안전 위험 이 존재 할 수 있 습 니 다." 를 참고 할 수 있 습 니 다.
이렇게 되면 제한 / upload / 어떤 확장자 든 지: alias 파일 에 매 핑 됩 니 다. 그러나 이 럴 때 위 에 구멍 이 생 겼 다 고 가정 하면 안전 하지 않 은 파일 은 원본 코드 로 표 시 됩 니 다. 따라서 디 렉 터 리 를 바 꾸 면 허용 범위 의 파일 에 만 접근 할 수 있 습 니 다.
 

  
  
location ~* \.php$ {
# :upstrem
proxy_pass http://myweb;
}

location ^~ /upload/ {

  if ($request_filename !~* \.(jpg|jpeg|gif|png|swf|zip|rar)$) {
     return 403;

  }

alias /static/upload/www.a.com/;
}

 
제한 을 통 해 파일 형식 에 접근 하여 위 에 저장 되 어 있 습 니 다. 불법 파일 도 마찬가지 로 접근 을 막 을 수 있 습 니 다. 이상 은 실제 업무 중, 처리 방법, 좋 은 방법 이 있 는 친구 입 니 다. 조언 해 주 셨 으 면 좋 겠 습 니 다.
 
 

좋은 웹페이지 즐겨찾기