[ php ] php 업로드 작성 및 파일 업로드 보안문제 - 7가지 > php

본문 바로가기

사이트 내 전체검색

php

[ php ] php 업로드 작성 및 파일 업로드 보안문제 - 7가지

작성일 18-09-30 18:14

페이지 정보

작성자 웹지기 조회 4,816회 댓글 0건

본문

1.php,inc,html,htm,phtml,php3 등의 확장자는 절대로 올릴 수 없게 한다 ! 

.txt 도 못올리게 합니다. .txt 를 사용해서 쿠키를 훔칠수도 있다. 


2.업로드 디렉토리는 무조건 htdocs 아래 말고 다른 디렉토리 에 올린다 !! 

/updir 이나 c:\updir 등 htdocs 와 관련이 없는 디렉토리에 올리게 한다. !! 


3.CP명령을 사용시에 exec(cp $file , 처럼 exec() 를 절대로 사용하지 말아야 한다. 

기냥 cp()만을 사용하라 !!! 

www.php.net/cp 


4.REQUEST_METHOD!="POST" 로 체크 해서 올리기 

POST 가 아닐 경우 올리지 못하게 !!! 

form 에서 method=get 으로 절대 절대 하지 마세요 !!! 

php.ini 에서 register_globals=off 라면 

$HTTP_SERVER_VARS['REQUEST_METHOD'] 로 출력 해야 합니당..ㅋㅋㅋ 

[code]

<?php 

if ($submit) { 

    if ($REQUEST_METHOD == 'POST') { 

        // 정상 실행 

    } 

    else { 

         echo 'get 값은 받지 않아요 !!'; 

    } 

else { 

    echo '훔....잘못된 입력 !!!'; 

?> 

[/code]


5.파일명이 pass 나 shadow 나 리눅스 시스템 파일일 경우는 올리지 못하게 하기 위해 

파일명 중에 pass 나 shadow 등이 있을 경우 올리지 못하게 !!! 

그러니까 koreapass.zip 파일 같은 것도 올라가지 않겟죠 ^^ 

그래도 보안을 위해서라면 ^^ /etc/passwd 파일(리눅스 파일)의 업로딩을 방지 합니다.


그러니까 upload.php 파일을 이용하여 주소표시줄에서 

upload.php?file_name=/etc/passwd&file_type=text&file_size=30 

등으로 해서 해킹할 시스템의 passwd 파일을 자료실에 올리고 다운 받을 수 있다고 합니다. 

그래서 취한 조치 입니다. 


6.또는 file_exists($file_name) 를 사용하여 체크 합니다. 로컬시스템에 파일이 있으면 절대 못올리게 

합니다 ^^ /etc/passwd 파일의 업로딩을 방지 합니다. 


7. PHP 4.1.2 최신 버전 말고는 모두 파일 업로드 버그가 존재 한다고 합니다.


추천0

비추천 0

댓글목록

등록된 댓글이 없습니다.

전체 82건 3 페이지

이미지 목록

게시물 검색
Copyright © 즐거운 코딩 생활 ( funyphp ). All rights reserved.
PC 버전으로 보기