|
| |
|
|
| |
для: sim5
(13.12.2007 в 13:35)
| | | Повторяю, я ни в коим случае не хочу оспорить Ваше пожелание насчёт чтения, но... Есть много разных "но", обсуждение коих будет флудом здесь.
Вобщем так или иначе, всем большое спасибо, задачу, поставленную в первом посте темы, вы мне решить помогли, всё вроде-бы работает, с безопасностью... Ну хуже видимо явно не стало... С меня, при встрече - магарыч, если вдруг ... :-)
Спасибо! | |
| |
|
|
| |
|
|
| |
для: soloway
(13.12.2007 в 13:26)
| | | Вот чтобы понять вам, уязвим кусочек вашего кода, (именно кусочек, ибо защита кода это комплекс мер), вам и нужно читать. Хотите писать код - изучайте вопросы безопасности, не хотите изучать, бросайте писать, по другому нельзя. | |
| |
|
|
| |
|
|
| |
для: sim5
(13.12.2007 в 13:08)
| | | Насчёт отсыла... :-)
Это на предмет моего вопроса о проверке или весь приведённый в моём предыдущем посте код уязвим?..
ЗЫ. Читать конечно надо, согласен, причём даже читаю... Просто дело в том, что я не программист вобщем-то, да и выучить все тонкости этого ремесла уже явно не смогу в силу многих причин... Хотя, безусловно это не может служить мне оправданием, а лишь усугубляет вину... :-) | |
| |
|
|
| |
|
|
| |
для: soloway
(13.12.2007 в 12:47)
| | | Даже и не знаю куда вас послать, вернее отослать :), чтобы почитать о том, что вас интересует. Ну вот, к примеру, простое:
Основы безопасного кода
Приемы сетевой обороны на PHP
Читать надо как можно больше, разбирать и изучать код, пробовать...
PS. И. Симдянов, думаю, посоветует более полезное по этому поводу, как автор книги "Головоломки для хакеров", если не ошибаюсь, так называется. | |
| |
|
|
| |
|
|
| |
для: 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 может состоять как из букв, так и из цифр. | |
| |
|
|
| |
|
|
| |
для: soloway
(12.12.2007 в 16:59)
| | | Читайте мануал. file_exists - проверяет, существует ли файл.
<?
if (file_exists(intval(trim($_GET['id']))).".php") ...
|
А возможно вы контент страниц держите в базе, и id это номер запись в таблице, тогда проверяйте существует ли такая запись контента...
PS. Причем для проверки файла intval не обязателен, а вот при запросе к базе - да. | |
| |
|
|
| |
|
|
| |
для: sim5
(12.12.2007 в 16:53)
| | | >>> он у вас служит совсем другим целям, не так ли?
Вот как раз это-то я и понимаю. Потому и спрашиваю. То что не решу проблему за счет preg_match это ясно. Надо видимо прикрутить ещё одну проверку, на наличие файлов... Как? Ткните меня носом.
А вот я ещё подумал, как это всё в плане ресурсоёмкости... А то может и вообще забить, вернуться к исходникам первого поста... :-)
Плюс конечно в том, что голова работает, но потянет ли сервер...))) | |
| |
|
|
| |
|
|
| |
для: soloway
(12.12.2007 в 16:49)
| | | Копают всегда в глубь, иначе то никак нельзя. :) А как вы узнаете что страница с id=3 есть, а с id=999 нет? Неужто вам это дает знать preg_match, ведь он у вас служит совсем другим целям, не так ли? | |
| |
|
|
| |
|
|
| |
для: 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 и т.д., а хотелось бы надпись...:-)
Уважаемые, сам понимаю, что "всё так запущено", но хотя бы натолкните на мысль... Куда копать? | |
| |
|
|
| |
|
|
| |
для: Гость
(12.12.2007 в 11:56)
| | | порверяйте $_GET[id] на наличие урлов | |
| |
|
|
|