Vulnérabilité de condition de concurrence php

prévenir

N'utilisez pas le contenu mentionné dans cet article pour enfreindre la loi .
Cet article ne donne aucune garantie

1. Présentation de la vulnérabilité

        Une "condition de concurrence" se produit lorsque plusieurs threads accèdent au même code partagé, variable, fichier, etc. en même temps sans verrouillage ni synchronisation.


Deuxièmement, le code utilisé dans l'expérience

<?php

$filename = $_FILES['file']['name'];
$chuhe = substr($filename,strrpos($filename,'.')+1);
$path = 'uploads/' . $filename;
$tmp = $_FILES['file']['tmp_name'];
if(move_uploaded_file($tmp,$path)){
	if(!preg_match('/php/i',$chuhe)){
		echo 'upload success,file in ' . $path;
	}else{
		unlink($path);
		die("can't upload php file!");
	}
}else{
	die('upload error!');
}
?>

Un code de téléchargement très simple. Comme vous pouvez le voir dans le code, le fichier téléchargé sera d'abord enregistré dans le répertoire de téléchargement, puis il sera jugé si le suffixe du fichier téléchargé contient php. Si c'est le cas, le fichier téléchargé sera être supprimé.

Il semble qu'il n'y ait pas de problème, mais il y a en fait une vulnérabilité de condition de concurrence ici.

même si

Je suppose que tu aimes

Origine blog.csdn.net/xiaofengdada/article/details/124369716
conseillé
Classement