[ php ] php 업로드 작성 및 파일 업로드 보안문제 - 7가지
페이지 정보
작성자 웹지기 댓글 0건 조회 5,749회 작성일 18-09-30 18:14본문
1.php,inc,html,htm,phtml,php3 등의 확장자는 절대로 올릴 수 없게 한다 !
.txt 도 못올리게 합니다. .txt 를 사용해서 쿠키를 훔칠수도 있다.
2.업로드 디렉토리는 무조건 htdocs 아래 말고 다른 디렉토리 에 올린다 !!
/updir 이나 c:\updir 등 htdocs 와 관련이 없는 디렉토리에 올리게 한다. !!
3.CP명령을 사용시에 exec(cp $file , 처럼 exec() 를 절대로 사용하지 말아야 한다.
기냥 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 최신 버전 말고는 모두 파일 업로드 버그가 존재 한다고 합니다.
댓글목록
등록된 댓글이 없습니다.