[질문]확장자가 php 인 파일의 업로드 막는법을 알고 싶습니다.
글쓴이: ani1974 / 작성시간: 화, 2005/12/06 - 11:43오전
ftp를 이용한 업로드는 물론 가능해야 하구요..^^;;;
제가 하고 싶은건 게시판이나 이미지 올리기 등에서 확장자가 php인 파일의 업로드를 서버 차원에서 막고 싶습니다.
프로그램 차원에서 막은다고는 하는데 버그가 있는듯 하내요...
서버차원에서 원천적으로 막는 방법은 없을까요?
Forums:
서버 차원이라고 하면 어떤 서버를 말씀하시는지는 모르겠지만, 아마 있었다
서버 차원이라고 하면 어떤 서버를 말씀하시는지는 모르겠지만, 아마 있었다면 사람들이 그걸 사용했겠지요.
보통 업로드에서 php파일 등의 server-side script파일을 막는 이유는 업로드 된 스크립트를 외부에서 불법적으로 실행할 가능성이 있기 때문입니다. 이 경우 문제가 되는 스크립트 파일의 업로드를 해결하는 여러가지 방법이 있을 수 있습니다.
1. 파일 업로드를 막는 방법
1.1 자바스크립트로 막는 방법
관련 소스는 인터넷에 많이 돌아다닐껍니다. 자바스크립트로 파일의 확장자를 판독해내서 php파일이면 submit하지 못하게 합니다.
그러나 이건 매우 간단한 방법이고 얼마든지 뚫릴 수 있기 때문에 권장하지 않습니다.
1.2 php에서 막는 방법
이것도 동작은 위와 비슷합니다. 파일의 확장자를 비교해서 php이면 reject시킵니다.
2. 업로드된 php를 무효화시키기
만약 httpd.conf에 대한 접근권한이 있다면 directory directive를 이용해서 업로드된 파일이 저장되는 디렉토리의 php실행을 막습니다. 즉,
등으로 해서 php 확장자는 무조건 php소스로 인식해서 그냥 화면에 뿌려주도록 하는 것이죠.
물론 이 경우엔 메인 addtype에 html등이 php실행소스로 지정되어 있지 않은지도 확인해야 합니다..
그 외에 특별한 경우가 아니라면 register_globals나 allow_url_fopen등의 설정을 off해줌으로써 좀 더 보안에 신경을 써줄수도 있습니다.
만약 위 설정들을 php.ini에서 off시켰는데, 특정 장소에서 필요하다면 간단하게 httpd.conf에서 directory directive를 이용해 php_flag_admin register_globals on (or allow_url_fopen on) 등으로 해주면 됩니다. (php_flag_admin인지 php_flag인지 잘 기억나지 않는데 버젼별로 좀 다르답니다.)
--->
데비안 & 우분투로 대동단결!
답변입니다.
그거 막어도 다른 확장명을 올리면 말짱 꽝인데 어짜피 실행은 되거든요.
댓글 달기