Перейти к публикации

Не заливают файлы на сервер с наличием php в названии


ru.slanov

Рекомендованные сообщения

Хочу залить файл на сервер с название manuals_php.pdf или phpmyadmin.jpg, вылетает ошибка Hacking attempt!

Нашел фильтр на имена:


if( stripos ( $image_name, "php" ) !== false ) die("Hacking attempt!");

if( stripos ( $image_name, "phtml" ) !== false ) die("Hacking attempt!");

if( stripos ( $imageurl, "php" ) !== false ) die("Hacking attempt!");

if( stripos ( $image_name, ".htaccess" ) !== false ) die("Hacking attempt!");

я понимаю проверка на расширение файла, но зачем проверку на название делать?

Ссылка на сообщение
Поделиться на других сайтах

Как по мне так это плюс больше, чем минус. Вы создайте текстовый файл с расширением txt, напишите в нем код

<?php echo "Привет мир!"; ?>[/CODE]

закиньте на сервер через ftp и запустите. Тогда все поймете.

Поэтому проверка идет не только на расширение, но и на наличие этих сочетаний букв.

Но думаю это не спасет если в имени файла нету этих сочетаний.

Ссылка на сообщение
Поделиться на других сайтах

Как по мне так это плюс больше, чем минус. Вы создайте текстовый файл с расширением txt, напишите в нем код

<?php echo "Привет мир!"; ?>
закиньте на сервер через ftp и запустите. Тогда все поймете. Поэтому проверка идет не только на расширение, но и на наличие этих сочетаний букв. Но думаю это не спасет если в имени файла нету этих сочетаний.

Forbidden


You don't have permission to access /uploads/files/codetest.txt on this server.

[/code]

Все равно логики не вижу, содержание файла не проверяется, но проверяется название. Тогда нужно менять фильтр, сделать проверку на содержания и расширение, в названии файла запустить скрипт никак не получится, а значит и опасения здесь не оправданы.

Ссылка на сообщение
Поделиться на других сайтах

/uploads/.htaccess

<FilesMatch "\.([Pp][Hh][Pp]|[Cc][Gg][ii]|[Pp][Ll]|[Ph][Hh][Tt][Mm][Ll])\.?">

Order allow,deny

Deny from all

</FilesMatch>

В названии файла не должно быть три буквы подряд php

Ссылка на сообщение
Поделиться на других сайтах

Все же правильнее будет сделать проверку именно расширение файла.

if( stripos ( $serverfile, ".php" ) !== false ) die("Hacking attempt!");

Ссылка на сообщение
Поделиться на других сайтах

Да кстати, тоже столкнулся с подобной проблемой, посидел потупил, понять ниче не мог. Потом просто переименовал, залил, переименовал обратно + в базе новое имя

Ссылка на сообщение
Поделиться на других сайтах

Архивировано

Эта тема находится в архиве и закрыта для публикации сообщений.

×
×
  • Создать...