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

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Проверка является ли строка URL (https://forum.antichat.xyz/showthread.php?t=126719)

ANONIM123 24.06.2009 13:45

Проверка является ли строка URL
 
Нужно выдернуть url, и.д.р инфу из страницы:

PHP код:


$file
=$_GET["url"];

// тут проверка


$file = @fopen("$file""r");
if (!
$file) {
    echo 
"<p>Ресурс не доступен!</p>\n";
    exit;
}
while (!
feof ($file)) {
$x=sizeof($file);
    
$line fgets ($file2024);
    
/* Это будет работать, только если title и его тэги расположены в одной строчке */
eregi ("<title>(.*)</title>"$line$out);
$title $out[1];

eregi ("<meta name=\"keywords\" content=\"(.*)\">"$line$keywords);

eregi ("<meta name=\"searchtitle\" content=\"(.*)\">"$line$searchtitle);

eregi ("<meta name=\"description\" content=\"(.*)\">"$line$description); 

Но если так оставить то получается инклуд...
Что вставить на место
// тут проверка
чтобы было безопасно, и нельзя было таким образом открывать локальные файлы?

wildshaman 24.06.2009 13:49

Нет тут никакого инклюда, не параной :)
Тут нет ни echo file_get_contents, ни include($file), и ничего такого подобного, все ок.

Pashkela 24.06.2009 13:54

2 wildshaman:

fopen при определенных обстоятельствах тоже инклуд

wildshaman 24.06.2009 13:58

Цитата:

Сообщение от Pashkela
2 wildshaman:

fopen при определенных обстоятельствах тоже инклуд

Ммм, а можно пример? Здесь-то фопнутый файл не выводится, или это не важно?

Krist_ALL 24.06.2009 14:04

if(!preg_match('#^\w+$#',$_GET['url'])) { echo 'fuck'; exit; }
else continue;

Pashkela 24.06.2009 14:09

Цитата:

Сообщение от wildshaman
Ммм, а можно пример? Здесь-то фопнутый файл не выводится, или это не важно?

Код:

http://micromake.ru/index.php?page=../../../../../../../../../../../../../../../../../../../../../../../../../../etc/passwd
И всё, как минимум путь у нас есть

wildshaman 24.06.2009 14:16

Мм-да, и правда....
Но в случае Тса же вроде все безопасно, как я понимаю?

.Slip 24.06.2009 14:16

Цитата:

Сообщение от Pashkela
2 wildshaman:

fopen при определенных обстоятельствах тоже инклуд

Может хватит уже?

Iceangel_ 24.06.2009 14:20

Цитата:

Сообщение от Pashkela
Код:

http://micromake.ru/index.php?page=../../../../../../../../../../../../../../../../../../../../../../../../../../etc/passwd
И всё, как минимум путь у нас есть

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

Цитата:

Сообщение от wildshaman
Мм-да, и правда....

хехе, как легко вас убедить


Цитата:

Сообщение от Krist_ALL
if(!preg_match('#^\w+$#',$_GET['url'])) { echo 'fuck'; exit; }
else continue;

судя по коду ТС, данный патч лишит код какого-либо смысла

Pashkela 24.06.2009 14:21

Хорошо, я имел в виду "чтение" файла, чтение, а инклуд просто общее у меня идет из название баги php-inj


Время: 11:14