за несколько дней go я заметил, что мой сайт тратит слишком много времени на загрузку форм POST.
И после небольшого исследования я обнаружил в журналах ошибок своего сервера попытка загрузить вредоносное ПО:
ModSecurity: Rule processing failed (msg=Attempt to upload malware)
Я не знаю, может ли эта проблема быть вызвана вирусом на моем компьютере, или, возможно, у меня возникла другая мысль по этому поводу:
Это происходит только в тех формах, которые имеют вход «Загрузка изображения» ....
Возможно, проблема может заключаться в том, что имена файлов имеют специальные символы, такие как "", ñ, '' и другие. ...
Это скрипт, который я использую для загрузки изображений на мой сайт:
if ($_FILES["image"]["error"] > 0){
$image_name = "0";
} else {
//ahora vamos a verificar si el tipo de archivo es un tipo de imagen permitido.
//y que el tamano del archivo no exceda los 100kb
$permitidos = array("image/jpg", "image/jpeg", "image/gif", "image/png");
$limite_kb = 5000;
$date= date("YmdHis");
if (in_array($_FILES['image']['type'], $permitidos) && $_FILES['image']['size'] <= $limite_kb * 1024){
//esta es la ruta donde copiaremos la imagen
//recuerden que deben crear un directorio con este mismo nombre
//en el mismo lugar donde se encuentra el archivo subir.php
$ruta = "../post/clan/" .$sessionid.'-'.$date.$_FILES['image']['name'];
//comprobamos si este archivo existe para no volverlo a copiar.
//pero si quieren pueden obviar esto si no es necesario.
//o pueden darle otro nombre para que no sobreescriba el actual.
if (!file_exists($ruta)){
//aqui movemos el archivo desde la ruta temporal a nuestra ruta
//usamos la variable $resultado para almacenar el resultado del proceso de mover el archivo
//almacenara true o false
$resultado = @move_uploaded_file($_FILES["image"]["tmp_name"], $ruta);
if ($resultado){
$image_name = $sessionid.'-'.$date.$_FILES['image']['name'];
//'$nombre'
$query = "UPDATE clans SET image='$image_name' WHERE id='$clanid' AND user='$sessionid'";
$result = $mysqli->query($query);
} else {
echo "ocurrio un error al mover el archivo.";
}
} else {
echo $_FILES['image']['name'] . ", este archivo existe";
}
} else {
echo "archivo no permitido, es tipo de archivo prohibido o excede el tamano de $limite_kb Kilobytes";
}
}
Не могли бы вы, ребята, помочь мне рассказать, как я могу конвертировать имена файлов для удаления специальных символов и пробелы?
Спасибо большое! Надеюсь, что это исправление может решить мою проблему.