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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Защита от обращения к страницам
 
 автор: iriter   (26.03.2007 в 02:04)   письмо автору
 
 

Нужно вот такого рода защита:
непосредственное обращение к определённым страницам в текущей папке (./) запретить, скажем через строку в браузере, но обращение через функцию require должно быть разрешено.

Вот такая задача! Как выполнить???

   
 
 автор: cheops   (26.03.2007 в 02:31)   письмо автору
 
   для: iriter   (26.03.2007 в 02:04)
 

В начало каждого такого файла помещайте проверку
<?php
  
if(!defined("REQUIRE")) exit();
?>

А перед инструкцией require() определяйте константу REQUIRE
<?php
  define
("REQUIRE"1);
?>

Если константа не определена, а при прямом обращении она определена быть не может, включаемый файл в самом начале прекращает свою работу.

   
 
 автор: iriter   (26.03.2007 в 02:49)   письмо автору
 
   для: cheops   (26.03.2007 в 02:31)
 

Где-то такое записано было, но я не нашел.
Можно в реальном примере показать?

   
 
 автор: cheops   (26.03.2007 в 03:02)   письмо автору
 
   для: iriter   (26.03.2007 в 02:49)
 

Хм... собственно - это реальный пример - можете просто вставить первое выражение во включаемый файл, а второе перед require() и всё начнёт работать.

   
 
 автор: mihdan   (26.03.2007 в 15:03)   письмо автору
 
   для: cheops   (26.03.2007 в 03:02)
 

можно еще так поступить - вместо



<?php
  
if(!defined("REQUIRE")) exit();
?> 


Написать


<?php
  
if(!defined("REQUIRE")) include ('404.php');
?> 


Код 404.php




<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL <?php echo $_SERVER['REQUEST_URI']?> was not found on this server.</p>
</body></html>


Это позволит нам сказть юзеру что такой папки иди файла просто нет - так отдастся сэмулированная стандартная ошибка сервера Апач

   
 
 автор: iriter   (26.03.2007 в 19:15)   письмо автору
 
   для: mihdan   (26.03.2007 в 15:03)
 

Всем спасибо! Будут еще вопросы - о вас не забуду :) !

   
Rambler's Top100
вверх

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