imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 23.05.2005, 09:21     # 81
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
нак:
Мне сказали что это через чур замудрено.
Да фигня, нормально вполне.
Цитата:
нак:
А можно как то упростить его или заменить другим кодом?
Можно конечно. Всегда можно заменить что-то на код который будет делать то же самое В твоем случае можно просто написать:
PHP код:
if (is_file('_text/'.@$id.'.txt.php')) @include_once('_text/'.$id.'.txt.php');
else @include_once(
'_text/phones.txt.php'); 
Только по большому счету разницы никакой, ну меньтше кода на 5 байт...
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 23.05.2005, 13:40     # 82
Raman
Junior Member
 
Регистрация: 25.01.2002
Сообщения: 157

Raman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собой
Судя по тому, что я видел, переменная $id нигде у вас не проверяется на валидность... Настоятельно рекомендую сделать проверку на alphanumerical (функция ctype_alnum($id) возвращает TRUE если буквы/цифры, FALSE - в противном случае) и отсечь все лишнее ПЕРЕД тем как делать include/require! Иначе можно много нехороших вещей сделать, например прочитать любой (с некоторыми условиями) файл.
Raman вне форума  
Старый 23.05.2005, 13:54     # 83
нак
Member
 
Аватар для нак
 
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370

нак Известность не заставит себя ждатьнак Известность не заставит себя ждать
Почему используется $id. Когда страницы открываются прописываеш ?id=service
нак вне форума  
Старый 23.05.2005, 15:58     # 84
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Raman, конечно чисто теоретически, очень абстрактно, это может быть некоторой уязвимостью, но если учесть что данная переменная является частью пути, которая никак не обрабатывается, а просто подставляется к константным частям, то ничего кроме того что итак там есть и предоставлено для просмотра получить таким образом не удастся.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 23.05.2005, 15:58     # 85
Raman
Junior Member
 
Регистрация: 25.01.2002
Сообщения: 157

Raman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собой
Я не спрашивал почему используется $id, хоть $page, хоть что угодно.
Но если будет, например, "?id=../index.php" то index.php свой код и покажет...
Это в случае отсутствия проверки.

А если копнуть глубже?.. (типа etc/passwd и т.д.)
Raman вне форума  
Старый 23.05.2005, 17:01     # 86
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
Raman:
Но если будет, например, "?id=../index.php" то index.php свой код и покажет...
Уверен? 2+2 в уме не сложить? Займемся арифметикой вместе???
$id = '../index.php';
$file = '_text/'.$id.'.txt.php';
По твоему теперь $file содержит путь на самого себя???? Помоему так на index.txt.php которого нету, поскольку все подобные файлы лежат в /_text/ !!!!!!!!!!

Я НЕ спорил сразу что чисто теоретически это потенциальная дырка, но не особенно уж страшная, как я подчеркивал, в свете дописывания постоянных частей в пути.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 23.05.2005, 22:54     # 87
Raman
Junior Member
 
Регистрация: 25.01.2002
Сообщения: 157

Raman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собой
Извиняюсь за пример c index.php... Но важность дыры от этого не меняется.

Во-первых, кто даст гарантию на то, что на сервере больше нет txt.php файлов?

Во-вторых, человек может захотеть использовать аналогичные расширения для include файлов - и это частое явление - а если их взять и просмотреть?

Понятно, что "хакеру" придется брутфорсить имена, но по словарю с правилами это не так сложно и не так долго. Да и сам владелец сайта может неявно помочь.

В-третьих, если человек, не дай бог, сделает fixed part как .php или .txt ?

Надо культуру программирования прививать смолоду - а из таких "мелочей" складываются дырявые продукты. И масштаб здесь не важен.

Ничего личного! Просто хочется чтобы человек осознал что пара строчек кода может застраховать от некоторых неожиданностей. И легче их добавить.
Raman вне форума  
Старый 24.05.2005, 12:13     # 88
нак
Member
 
Аватар для нак
 
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370

нак Известность не заставит себя ждатьнак Известность не заставит себя ждать
Я смотрю затронул болезненый вопрос.
Тогда подскажите как, куда и какую защиту я должен поставить в файлах index.php phones.text.php и остальных. чтобы не взломали сайт? Хоть и у меня обычный сайт. там нечего и смотреть то. Но все же.
нак вне форума  
Старый 24.05.2005, 13:21     # 89
Raman
Junior Member
 
Регистрация: 25.01.2002
Сообщения: 157

Raman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собойRaman Имеются все основания чтобы гордиться собой
В 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, чтение которых нежелательно.
Raman вне форума  
Старый 24.05.2005, 13:39     # 90
нак
Member
 
Аватар для нак
 
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370

нак Известность не заставит себя ждатьнак Известность не заставит себя ждать
Спасибо. Но у меня файлы в _text только те которые должны считать, больше ничего нет.
Да и я упростил сайт оставил в index.php только два includes_once В начале и в конце с сылкой на файл с мета тэгами и внизу на рекламу и все.
нак вне форума  
Старый 03.06.2005, 19:20     # 91
нак
Member
 
Аватар для нак
 
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370

нак Известность не заставит себя ждатьнак Известность не заставит себя ждать
А скажите, как понять вот это добавление к index.php:
index.s.php?id=articles&loc=press_other/pts_gro.php? Если ясно, что id= относится к коду которое разбирали верху, а дальше куда идет сылка?
нак вне форума  
Старый 04.06.2005, 10:11     # 92
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
нак:
А скажите, как понять вот это добавление к index.php:
index.s.php?id=articles&loc=press_other/pts_gro.php? Если ясно, что id= относится к коду которое разбирали верху, а дальше куда идет сылка?
Гыг, дак это нужно у тебя спросить как ты обрабатываешь второй параметр loc в скрипте! Телепаты здесь видимо в отпуске - лето же!
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 04.06.2005, 12:39     # 93
нак
Member
 
Аватар для нак
 
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370

нак Известность не заставит себя ждатьнак Известность не заставит себя ждать
Не я обрабатываю это, а у знакомого видел на его сайте Вот и спросил. Он мне дал коды с id=
нак вне форума  
Старый 04.06.2005, 15:47     # 94
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Дак у него и нужно спросить что унего этот параметр значит! Ведь можно сколько угодно каких надо сделать!
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 29.06.2005, 21:27     # 95
нак
Member
 
Аватар для нак
 
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370

нак Известность не заставит себя ждатьнак Известность не заставит себя ждать
Спасибо за инфу

Последний раз редактировалось нак; 30.06.2005 в 06:48.
нак вне форума  
Старый 18.07.2005, 10:00     # 96
нак
Member
 
Аватар для нак
 
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370

нак Известность не заставит себя ждатьнак Известность не заставит себя ждать
Не нехочет сказать что за код обрабатывает это index.s.php?id=articles&loc=press_other/pts_gro.php. А мне очень нужно это чтобы файлы помещать по папкам а не в одну, чтобы потом не искать в куче.
Чтобы разные названия папок можно было делать.
Помогите пожалуйста?
нак вне форума  
Старый 18.07.2005, 12:25     # 97
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
нак:
А мне очень нужно это чтобы файлы помещать по папкам а не в одну, чтобы потом не искать в куче.
Дак помещай в разные директории, проблема-то в чем? Просто ставь правильные пути и все.
Цитата:
нак:
Помогите пожалуйста?
Ставь конкретный вопрос в чем сложность или что не получается - постараемся помочь.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 18.07.2005, 16:52     # 98
нак
Member
 
Аватар для нак
 
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370

нак Известность не заставит себя ждатьнак Известность не заставит себя ждать
Я и создаю директорию press_other в директории _txt и помещаю туда файл. Ставлю сылку в файле articles.txt.php index.s.php?id=articles&loc=press_other/pts_gro.php. Но все равно ответ как будто нет такой директорнии и файла. Остается та же страница

Оказывается там другой php код обрабатывает этото сценарий.
нак вне форума  
Старый 18.07.2005, 22:27     # 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=*** столько и папок и в ней папок
нак вне форума  
Старый 19.07.2005, 10:58     # 100
нак
Member
 
Аватар для нак
 
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370

нак Известность не заставит себя ждатьнак Известность не заставит себя ждать
Цитата:
Сообщение от Hubbitus
Дак помещай в разные директории, проблема-то в чем? Просто ставь правильные пути и все.
Я и помещаю в папки, а вот как в коде поставить путь к ним и файлам в них? Когда папок столько сколько и id=***
нак вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 14:52.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.