| imho.ws |
![]() |
|
|
|
# 81 | ||
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Цитата:
В твоем случае можно просто написать:PHP код:
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
||
|
|
|
|
# 82 |
|
Junior Member
Регистрация: 25.01.2002
Сообщения: 157
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Судя по тому, что я видел, переменная $id нигде у вас не проверяется на валидность... Настоятельно рекомендую сделать проверку на alphanumerical (функция ctype_alnum($id) возвращает TRUE если буквы/цифры, FALSE - в противном случае) и отсечь все лишнее ПЕРЕД тем как делать include/require! Иначе можно много нехороших вещей сделать, например прочитать любой (с некоторыми условиями) файл.
|
|
|
|
|
# 83 |
|
Member
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370
![]() ![]() |
Почему используется $id. Когда страницы открываются прописываеш ?id=service
__________________
Сочинский клуб IMHO.WS |
|
|
|
|
# 84 |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Raman, конечно чисто теоретически, очень абстрактно, это может быть некоторой уязвимостью, но если учесть что данная переменная является частью пути, которая никак не обрабатывается, а просто подставляется к константным частям, то ничего кроме того что итак там есть и предоставлено для просмотра получить таким образом не удастся.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|
|
|
# 85 |
|
Junior Member
Регистрация: 25.01.2002
Сообщения: 157
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Я не спрашивал почему используется $id, хоть $page, хоть что угодно.
Но если будет, например, "?id=../index.php" то index.php свой код и покажет... Это в случае отсутствия проверки. А если копнуть глубже?.. (типа etc/passwd и т.д.) |
|
|
|
|
# 86 | |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
$id = '../index.php'; $file = '_text/'.$id.'.txt.php'; По твоему теперь $file содержит путь на самого себя???? Помоему так на index.txt.php которого нету, поскольку все подобные файлы лежат в /_text/ !!!!!!!!!! Я НЕ спорил сразу что чисто теоретически это потенциальная дырка, но не особенно уж страшная, как я подчеркивал, в свете дописывания постоянных частей в пути.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|
|
|
|
# 87 |
|
Junior Member
Регистрация: 25.01.2002
Сообщения: 157
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Извиняюсь за пример c index.php... Но важность дыры от этого не меняется.
Во-первых, кто даст гарантию на то, что на сервере больше нет txt.php файлов? Во-вторых, человек может захотеть использовать аналогичные расширения для include файлов - и это частое явление - а если их взять и просмотреть? Понятно, что "хакеру" придется брутфорсить имена, но по словарю с правилами это не так сложно и не так долго. Да и сам владелец сайта может неявно помочь. В-третьих, если человек, не дай бог, сделает fixed part как .php или .txt ? Надо культуру программирования прививать смолоду - а из таких "мелочей" складываются дырявые продукты. И масштаб здесь не важен. Ничего личного! Просто хочется чтобы человек осознал что пара строчек кода может застраховать от некоторых неожиданностей. И легче их добавить. |
|
|
|
|
# 88 |
|
Member
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370
![]() ![]() |
Я смотрю затронул болезненый вопрос.
Тогда подскажите как, куда и какую защиту я должен поставить в файлах index.php phones.text.php и остальных. чтобы не взломали сайт? Хоть и у меня обычный сайт. там нечего и смотреть то. Но все же.
__________________
Сочинский клуб IMHO.WS |
|
|
|
|
# 89 |
|
Junior Member
Регистрация: 25.01.2002
Сообщения: 157
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
В index.php достаточно явно задать $id и сделать базовую проверку на ctype_alpnum:
Код:
$id=$_GET[id];
if (is_file('_text/'.@$id.'.txt.php') && ctype_alnum($id)) @include_once('_text/'.$id.'.txt.php');
else @include_once('_text/phones.txt.php');
И взять за правило не размешать в директории _text файлов с расширением txt.php, чтение которых нежелательно. |
|
|
|
|
# 90 |
|
Member
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370
![]() ![]() |
Спасибо. Но у меня файлы в _text только те которые должны считать, больше ничего нет.
Да и я упростил сайт оставил в index.php только два includes_once В начале и в конце с сылкой на файл с мета тэгами и внизу на рекламу и все.
__________________
Сочинский клуб IMHO.WS |
|
|
|
|
# 91 |
|
Member
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370
![]() ![]() |
А скажите, как понять вот это добавление к index.php:
index.s.php?id=articles&loc=press_other/pts_gro.php? Если ясно, что id= относится к коду которое разбирали верху, а дальше куда идет сылка?
__________________
Сочинский клуб IMHO.WS |
|
|
|
|
# 92 | |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|
|
|
|
# 93 |
|
Member
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370
![]() ![]() |
Не я обрабатываю это, а у знакомого видел на его сайте Вот и спросил. Он мне дал коды с id=
__________________
Сочинский клуб IMHO.WS |
|
|
|
|
# 94 |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Дак у него и нужно спросить что унего этот параметр значит! Ведь можно сколько угодно каких надо сделать!
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|
|
|
# 95 |
|
Member
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370
![]() ![]() |
Спасибо за инфу
__________________
Сочинский клуб IMHO.WS Последний раз редактировалось нак; 30.06.2005 в 06:48. |
|
|
|
|
# 96 |
|
Member
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370
![]() ![]() |
Не нехочет сказать что за код обрабатывает это index.s.php?id=articles&loc=press_other/pts_gro.php. А мне очень нужно это чтобы файлы помещать по папкам а не в одну, чтобы потом не искать в куче.
Чтобы разные названия папок можно было делать. Помогите пожалуйста?
__________________
Сочинский клуб IMHO.WS |
|
|
|
|
# 97 | ||
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Цитата:
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
||
|
|
|
|
# 98 |
|
Member
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370
![]() ![]() |
Я и создаю директорию press_other в директории _txt и помещаю туда файл. Ставлю сылку в файле articles.txt.php index.s.php?id=articles&loc=press_other/pts_gro.php. Но все равно ответ как будто нет такой директорнии и файла. Остается та же страница
Оказывается там другой php код обрабатывает этото сценарий.
__________________
Сочинский клуб IMHO.WS |
|
|
|
|
# 99 |
|
Member
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370
![]() ![]() |
Мне не понятен код который обрабатывал как выше код index.s.php?id=articles И в добавок так что в корневой есть папка articles с папкой с файлом press_other/pts_gro.php. Вот и получается обращение index.s.php?id=articles&loc=press_other/pts_gro.php
И сколько id=*** столько и папок и в ней папок
__________________
Сочинский клуб IMHO.WS |
|
|
|
|
# 100 | |
|
Member
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370
![]() ![]() |
Цитата:
__________________
Сочинский клуб IMHO.WS |
|
|
|