Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Адаптация сайта под register_globals off

Сообщения:  [1-10]   [11-15] 

 
 автор: soloway   (13.12.2007 в 13:48)   письмо автору
 
   для: sim5   (13.12.2007 в 13:35)
 

Повторяю, я ни в коим случае не хочу оспорить Ваше пожелание насчёт чтения, но... Есть много разных "но", обсуждение коих будет флудом здесь.

Вобщем так или иначе, всем большое спасибо, задачу, поставленную в первом посте темы, вы мне решить помогли, всё вроде-бы работает, с безопасностью... Ну хуже видимо явно не стало... С меня, при встрече - магарыч, если вдруг ... :-)
Спасибо!

   
 
 автор: sim5   (13.12.2007 в 13:35)   письмо автору
 
   для: soloway   (13.12.2007 в 13:26)
 

Вот чтобы понять вам, уязвим кусочек вашего кода, (именно кусочек, ибо защита кода это комплекс мер), вам и нужно читать. Хотите писать код - изучайте вопросы безопасности, не хотите изучать, бросайте писать, по другому нельзя.

   
 
 автор: soloway   (13.12.2007 в 13:26)   письмо автору
 
   для: sim5   (13.12.2007 в 13:08)
 

Насчёт отсыла... :-)

Это на предмет моего вопроса о проверке или весь приведённый в моём предыдущем посте код уязвим?..

ЗЫ. Читать конечно надо, согласен, причём даже читаю... Просто дело в том, что я не программист вобщем-то, да и выучить все тонкости этого ремесла уже явно не смогу в силу многих причин... Хотя, безусловно это не может служить мне оправданием, а лишь усугубляет вину... :-)

   
 
 автор: sim5   (13.12.2007 в 13:08)   письмо автору
 
   для: soloway   (13.12.2007 в 12:47)
 

Даже и не знаю куда вас послать, вернее отослать :), чтобы почитать о том, что вас интересует. Ну вот, к примеру, простое:
Основы безопасного кода
Приемы сетевой обороны на PHP
Читать надо как можно больше, разбирать и изучать код, пробовать...

PS. И. Симдянов, думаю, посоветует более полезное по этому поводу, как автор книги "Головоломки для хакеров", если не ошибаюсь, так называется.

   
 
 автор: soloway   (13.12.2007 в 12:47)   письмо автору
 
   для: sim5   (12.12.2007 в 17:04)
 

Спасибо, Вы мне очень помогли.

Уфф.
Вобщем вот что у меня вышло:

$id=$_GET['id'];
if (preg_match("/[0-9]+$/", $id))
{
if (file_exists(trim($_GET['id'].".php"))) 
   include $_GET['id'].'.php';
else
   echo 'Запрошенный файл не существует';
}
else echo 'Данная ссылка недействительна';



Вроде бы работает.
И ещё, посоветуйте как лучше (каким выражением) проверить вводимые данные - if (preg_match("/[0-9]+$/", $id)), что бы не получить из них какой бяки... Планируется, что $id может состоять как из букв, так и из цифр.

   
 
 автор: sim5   (12.12.2007 в 17:04)   письмо автору
 
   для: soloway   (12.12.2007 в 16:59)
 

Читайте мануал. file_exists - проверяет, существует ли файл.

<?
if (file_exists(intval(trim($_GET['id']))).".php") ...

А возможно вы контент страниц держите в базе, и id это номер запись в таблице, тогда проверяйте существует ли такая запись контента...

PS. Причем для проверки файла intval не обязателен, а вот при запросе к базе - да.

   
 
 автор: soloway   (12.12.2007 в 16:59)   письмо автору
 
   для: sim5   (12.12.2007 в 16:53)
 

>>> он у вас служит совсем другим целям, не так ли?

Вот как раз это-то я и понимаю. Потому и спрашиваю. То что не решу проблему за счет preg_match это ясно. Надо видимо прикрутить ещё одну проверку, на наличие файлов... Как? Ткните меня носом.

А вот я ещё подумал, как это всё в плане ресурсоёмкости... А то может и вообще забить, вернуться к исходникам первого поста... :-)
Плюс конечно в том, что голова работает, но потянет ли сервер...)))

   
 
 автор: sim5   (12.12.2007 в 16:53)   письмо автору
 
   для: soloway   (12.12.2007 в 16:49)
 

Копают всегда в глубь, иначе то никак нельзя. :) А как вы узнаете что страница с id=3 есть, а с id=999 нет? Неужто вам это дает знать preg_match, ведь он у вас служит совсем другим целям, не так ли?

   
 
 автор: soloway   (12.12.2007 в 16:49)   письмо автору
 
   для: MIchail1982   (12.12.2007 в 12:15)
 

Спасибо, вы все мне очень помогли.

Теперь вот ещё вопрос в догонку. Родил я нечто вот такое

if (preg_match("/[0-9]+$/", $id)){include ("$id.php");}
 else print ('нету такой страницы');

Сейчас в принципе неважно по чему проверять, просто пока модель, мне надо самому разобраться. Но в принципе, насколько я понял, для "проверки на урлы" надо быдет сделать примерно так: if (preg_match("/[0-9]+$/", $id))... Если не прав, поправьте, плз, но сейчас не это главное.

У меня представленная в коде конструкция работает, при переходе на index.php?id=3 выводит контент из файла 3.php, при попытке перехода на index.php?id=abc, как и положено надпись, что нет страницы. Но тут вот ещё что...

Мне бы хотелось сделать так, что бы при значении $id, несоответствующем имени существующих файлов, так же выводилась надпись, что страницы нет. У меня же пока при попытке перехода по ссылке index.php?id=999 и отсутствии файла 999.php выводит стандартное include(999.php) [function.include]: failed to open stream и т.д., а хотелось бы надпись...:-)

Уважаемые, сам понимаю, что "всё так запущено", но хотя бы натолкните на мысль... Куда копать?

   
 
 автор: MIchail1982   (12.12.2007 в 12:15)   письмо автору
 
   для: Гость   (12.12.2007 в 11:56)
 

порверяйте $_GET[id] на наличие урлов

   

Сообщения:  [1-10]   [11-15] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования