나는 사용자가 플러그인 (slimimagecropper.com FYI)을 통해 업로드 할 이미지를 저장하기 위해 file_put_contents($path, $image);
을 사용하고 있습니다.file_put_contents()로 저장된 이미지의 유효성을 검사하려면 어떻게해야합니까?
저는 XSS에 대해 우려하고 있습니다. 으로 저장하기 전에 XSS에 대해 $image
을 확인하는 가장 좋은 방법은 무엇입니까?
나는 사용자가 플러그인 (slimimagecropper.com FYI)을 통해 업로드 할 이미지를 저장하기 위해 file_put_contents($path, $image);
을 사용하고 있습니다.file_put_contents()로 저장된 이미지의 유효성을 검사하려면 어떻게해야합니까?
저는 XSS에 대해 우려하고 있습니다. 으로 저장하기 전에 XSS에 대해 $image
을 확인하는 가장 좋은 방법은 무엇입니까?
참조 : 내용이 이미지 인 경우 PHP Validating the File Upload
유효성을 검사하려면, 당신은 확인해야합니다 :
이확장 및 MIME 타입의 유효성을 검사 (기준에서 촬영)이 코드를 사용해보십시오 :
$allowedExts = array("gif", "jpeg", "jpg", "png");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts))
그리고 그것의 내용을 확인하기 위해이 코드를 (참조에서 촬영) :
$file = $_FILES['file']['tmp_name'];
if (file_exists($file)) {
$imagesizedata = getimagesize($file);
if ($imagesizedata === FALSE) {
//not image
} else {
//image
}
}
사용자 업로드를 삭제할 수있는 몇 가지 방법이 있습니다. $_FILES
의 모든 내용을 조작 할 수 있으므로 신뢰할 수 없으므로 에을 모두 신뢰하십시오.
파일 이름 :
는 사용자가 제공 한 파일 이름을 신뢰하지 마십시오 - 항상 다른 소독 입력으로 저장합니다. image.jpg.php
->uniquestring_programatically_generated.jpg
Getimagesize :
사용 방법 getimagesize($filename)
은 실제 이미지와 확인하고, 그것은 크기를 갖는다.
파일 유형이 이미지인지 먼저 확인하고 이미지 확장명으로 저장해야합니다. 사람들이'$ image'를 어떻게 업로드합니까? – Antony
감사합니다. 이미지를 얻기 위해 $ _FILES 배열을 보는 플러그인 (slimimagecropper.com)을 통해 업로드합니다. 지금까지 보았 듯이이 플러그인은 XSS 검사 서버 측을 수행하지 않으므로 왜'file_put_contents()'를 쓰는 플러그인 코드를 수정하고 싶습니까? – Nadine