머리속에 갑자기 방법이 떠올라 가장 많이 쓰이는 jpg,gif,png,zip 만 해서 파일 확장자가 맞게 되어 있는지를 검사하는 함수를 만들어 보았습니다. 만일 스크립트 파일을 확장자를 이미지 확장자로 바꾼다할 지라도 유효성 검사에서 실패하겠죠.
function validate_ext($file, $ext="gif")
{
$ext = strtolower($ext);
if (!in_array($ext, array('jpg', 'jpeg', 'png', 'gif', 'zip'))) {
return false;
}
if ($fp = fopen($file, 'rb')) {
$contents = base64_encode(fread($fp, 30));
fclose($fp);
switch ($ext) {
case 'jpeg':
case 'jpg': $pattern = "/^\/9j\/4AAQSkZJRgABA/"; break;
case 'png': $pattern = "/^iVBORw0KGgoAAAANSUhEUgAAA/"; break;
case 'gif': $pattern = "/^R0lGODlh/"; break;
case 'zip': $pattern = "/^UEsDBBQABAAIA/"; break;
}
if (preg_match($pattern, $contents)) {
return true;
}
}
return false;
}
예를 들어 validate_ext('path/to/img.gif', 'gif') 검사를 했을 때 올바른 확장자의 파일일 경우 true값이 리턴됩니다.
시간나면 다른 확장자들도 추가해야 겠네요.
댓글 4개
실제 파일인지 검사하는거네요
좋은 팁 감사합니다.
스크랩 해 놓고 나중에 적용 해봐야 겠습니다.
근데 비표준(뭘하건 이게 문제죠)파일은 어떻게 하죠?
예를들어 zip파일을 winzip, winrar, alzip 등으로 압축률 이리저리 틀리게 압축하거나 암호넣어 압축했을시에도 패턴이 일치될까요? 파일 헤더는 같으려나.....
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 2130 | 17년 전 | 1186 | ||
| 2129 |
ⓧ힘내세요
|
17년 전 | 2239 | |
| 2128 | 17년 전 | 2875 | ||
| 2127 | 17년 전 | 4058 | ||
| 2126 | 17년 전 | 3145 | ||
| 2125 | 17년 전 | 1409 | ||
| 2124 | 17년 전 | 1707 | ||
| 2123 | 17년 전 | 2238 | ||
| 2122 | 17년 전 | 1545 | ||
| 2121 | 17년 전 | 1725 | ||
| 2120 | 17년 전 | 2719 | ||
| 2119 | 17년 전 | 2146 | ||
| 2118 | 17년 전 | 1799 | ||
| 2117 |
아름다운세상
|
17년 전 | 4208 | |
| 2116 | 17년 전 | 3049 | ||
| 2115 | 17년 전 | 1435 | ||
| 2114 |
아름다운세상
|
17년 전 | 3571 | |
| 2113 | 17년 전 | 2798 | ||
| 2112 | 17년 전 | 2077 | ||
| 2111 | 17년 전 | 1294 | ||
| 2110 | 17년 전 | 2336 | ||
| 2109 | 17년 전 | 2071 | ||
| 2108 | 17년 전 | 1993 | ||
| 2107 |
휴전합시다
|
17년 전 | 1923 | |
| 2106 | 17년 전 | 1171 | ||
| 2105 |
|
17년 전 | 1873 | |
| 2104 | 17년 전 | 2930 | ||
| 2103 | 17년 전 | 1435 | ||
| 2102 | 17년 전 | 1672 | ||
| 2101 | 17년 전 | 1357 | ||
| 2100 | 17년 전 | 1603 | ||
| 2099 | 17년 전 | 1576 | ||
| 2098 | 17년 전 | 1447 | ||
| 2097 | 17년 전 | 2569 | ||
| 2096 | 17년 전 | 2331 | ||
| 2095 | 17년 전 | 2114 | ||
| 2094 | 17년 전 | 1422 | ||
| 2093 | 17년 전 | 2439 | ||
| 2092 | 17년 전 | 4264 | ||
| 2091 | 17년 전 | 2754 | ||
| 2090 | 17년 전 | 1667 | ||
| 2089 | 17년 전 | 1859 | ||
| 2088 | 17년 전 | 3239 | ||
| 2087 | 17년 전 | 2237 | ||
| 2086 | 17년 전 | 3835 | ||
| 2085 | 17년 전 | 1682 | ||
| 2084 | 17년 전 | 2287 | ||
| 2083 | 17년 전 | 2110 | ||
| 2082 | 17년 전 | 1616 | ||
| 2081 | 17년 전 | 2129 | ||
| 2080 |
letsgolee
|
17년 전 | 1922 | |
| 2079 | 17년 전 | 1962 | ||
| 2078 | 17년 전 | 3076 | ||
| 2077 | 17년 전 | 2152 | ||
| 2076 | 17년 전 | 1444 | ||
| 2075 | 17년 전 | 1463 | ||
| 2074 | 17년 전 | 2132 | ||
| 2073 | 17년 전 | 3207 | ||
| 2072 | 17년 전 | 2142 | ||
| 2071 |
휴전합시다
|
17년 전 | 1536 | |
| 2070 | 17년 전 | 4253 | ||
| 2069 | 17년 전 | 2045 | ||
| 2068 | 17년 전 | 3468 | ||
| 2067 | 17년 전 | 6041 | ||
| 2066 | 17년 전 | 1486 | ||
| 2065 |
letsgolee
|
17년 전 | 1655 | |
| 2064 | 17년 전 | 1235 | ||
| 2063 | 17년 전 | 1350 | ||
| 2062 |
vicky
|
17년 전 | 2877 | |
| 2061 | 17년 전 | 1910 | ||
| 2060 |
카프카07
|
17년 전 | 2597 | |
| 2059 | 17년 전 | 1311 | ||
| 2058 | 17년 전 | 3187 | ||
| 2057 | 17년 전 | 2167 | ||
| 2056 | 17년 전 | 2613 | ||
| 2055 | 17년 전 | 1407 | ||
| 2054 | 17년 전 | 1760 | ||
| 2053 | 17년 전 | 1152 | ||
| 2052 |
|
17년 전 | 1211 | |
| 2051 | 17년 전 | 1796 | ||
| 2050 | 17년 전 | 1235 | ||
| 2049 | 17년 전 | 4317 | ||
| 2048 | 17년 전 | 1516 | ||
| 2047 | 17년 전 | 2014 | ||
| 2046 |
카프카07
|
17년 전 | 7095 | |
| 2045 | 17년 전 | 1386 | ||
| 2044 | 17년 전 | 1904 | ||
| 2043 | 17년 전 | 3137 | ||
| 2042 | 17년 전 | 1232 | ||
| 2041 |
카프카07
|
17년 전 | 1989 | |
| 2040 | 17년 전 | 1169 | ||
| 2039 |
smilesol
|
17년 전 | 1860 | |
| 2038 | 17년 전 | 2165 | ||
| 2037 |
|
17년 전 | 2976 | |
| 2036 | 17년 전 | 1252 | ||
| 2035 |
|
17년 전 | 1346 | |
| 2034 |
ㅣ곰탱이ㅣ
|
17년 전 | 1567 | |
| 2033 |
|
17년 전 | 1234 | |
| 2032 | 17년 전 | 4361 | ||
| 2031 | 17년 전 | 3904 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기