anonymouse
21.03.2009 - 20:25
Доброе время суток.
Вот наслушался я про дыры в формах и особенно когда заливают файлы.
Уселся прочитал парочку статей но так и не понял какой же выход?
1. прочитал про замену типа что якобы вместо Жпега передаём ПХП... Ок выход getimagesize();
2. но вот прочитал я про то что в Жпеги кидают код - и тут я задумался - как же его гада убить то ?
нашел функцию но ничего я в ней не понял...
PHP |
<?php $exif = exif_read_data('picture.jpg', 0, true); echo "picture.jpg:<br>\n"; foreach ($exif as $key => $section) { foreach ($section as $name => $val) { echo htmlspecialchars("$key.$name: $val")."<br>\n"; } }
|
3. и какие бы вы мне предложили зашиты от JPG/GIF/WORD/PNG/TXT - файлов ?
Уж не хочется у себя потом отлавливать всякий шелл
скрипты...
Спустя 18 минут, 23 секунды (21.03.2009 - 19:43) kirik написал(а):
1. .jpg файл не запустится как .php (если ты сам этого не захочешь)
2. Дыра с выполнением JS кода из картинки была и осталась только в IE6 (пользователи этого браузера сами виноваты)
Цитата (anonymouse @ 21.03.2009 - 11:25) |
нашел функцию но ничего я в ней не понял... |
Считывает EXIF заголовки из картинки и экранирует все "опасные" символы посредством htmlspecialchars()
Спустя 22 часа, 8 минут, 41 секунда (22.03.2009 - 17:52) anonymouse написал(а):
Цитата (kirik @ 21.03.2009 - 16:43) |
1. .jpg файл не запустится как .php (если ты сам этого не захочешь) 2. Дыра с выполнением JS кода из картинки была и осталась только в IE6 (пользователи этого браузера сами виноваты)
Цитата (anonymouse @ 21.03.2009 - 11:25) | нашел функцию но ничего я в ней не понял... |
Считывает EXIF заголовки из картинки и экранирует все "опасные" символы посредством htmlspecialchars()
|
Исходя из того что ты мне сказал - если я не буду выполнять функцию system();
cmd() или еще чете типо того - никакой опасность нету в использование кода в JPG-ax я правильно понял ?
Ну как насчет Perl-a я читал статью где сам Perl подделывает исходящей данные и тем самым позволяет загрузить PHP скрипт.
что же тут вы скажите ?
Пример статьи :
_http://habrahabr.ru/blogs/php/44610/ - или я сам себя ввожу в заблуждение...
Просто то чем я себя ша занимаю это пишу кое что - и там без загрузок файлов ну никак - вот почему меня очень дергает этот вопрос.
Спустя 21 минута (22.03.2009 - 18:13) Sylex написал(а):
anonymouse
как сказал уже kirik:
Цитата ("kirik") |
.jpg файл не запустится как .php (если ты сам этого не захочешь) |
то никакой опасности нет... опасность может быть только в следующем:
если ты даешь расширение файлу то, что приходит от пользователя!!!
по умолчанию исполняемые скрипты только .php !!!
Спустя 1 час, 28 минут, 51 секунда (22.03.2009 - 19:42) kirik написал(а):
Цитата (anonymouse @ 22.03.2009 - 09:52) |
если я не буду выполнять функцию system(); cmd() или еще чете типо того |
А зачем тебе понадобится выполнять код картинки?
Цитата (anonymouse @ 22.03.2009 - 09:52) |
у как насчет Perl-a я читал статью где сам Perl подделывает исходящей данные и тем самым позволяет загрузить PHP скрипт. |
Ну и загрузят тебе php скрипт. Но и ты не дурак, сам называешь файл и даешь расширение .jpg
Можешь также в той дериктории, куда сливаются файлы на всякий случай запретить выполнение php и cgi скриптов через .htaccess:
Код |
# Вырубаем выполнение php: AddType text/html .htm .html AddType application/x-httpd-php-source .php
# Вырубаем выполение SSI и CGI: Options -ExecCGI -Includes |
_____________