0
<?php
if($_POST){
$imagentipo=$_FILES['imagen']['type'];
$check=array("image/gif","image/jpeg","image/png");
if(in_array($imagentipo,$check)){
$imagen=$_FILES['imagen']['name'];
$temp=$_FILES['imagen']['tmp_name'];
move_uploaded_file($temp,$imagen);
}
}
?>
<html>
<body>
<form action=test.php method=post enctype=multipart/form-data>
<img src="<?php echo $imagen ?>" width=50 height=50><br>
<input type=file name=imagen accept="image/*"><br>
<input type=submit name=lol>
</form>
</body>
</html>
Этот код допускает только: .jpg .gif .png файлы для загрузки; однако это может быть обойдено с помощью данных вмешательства. Любые способы предотвратить это?Как защитить эту загрузку php от LFI
Хотите попробовать недействительные загрузки, дезинфицировать все файлы, или комбинацию обоих? (Sanitizing часто проще/быстрее, чем обнаружение.) –
Чтобы быть уязвимым для LFI (включение локального файла), вам нужно включить файл в свой скрипт (как указано в названии). – nickb
@nickb: это неверно. Если вы можете читать, например,/etc/passwd, это все равно включение файла, даже если оно не выполняется. – Chris