Защита составных частей скрипта??

  • Автор темы Автор темы Orlando
  • Дата начала Дата начала

Orlando

Guest
Защита составных частей скрипта??

При программировании возникает задача разделения скрипта на части по файлам.
Допустим есть файл index.php:
<?
include("./part/part1.php");
....
include("./part/part2.php");
....
include("./part/part3.php");
?>

Вопрос: как обезопаситься от выполнения каждого из скриптов, например, www.server.com/part/part1.php и всё он выполняется???

То есть нужно что бы по отдельности эти скрипты вообще ничего не выводили, а ещё лучше были недоступны!!

Может можно просто каким-то образом установить на них права так, что бы они выполнялись только из index.php или создать ключ, который проверять в каждой из частей.. Какие есть ещё выходы??
 
или вставить переменную в index.php
$access = true;

а в остальные файлы вставить в самом начале скрипта следущее
if(!isset($access)) {
die("access denied.");
}
 
demongloom
Нет, это примитивное решение. Используй для защиты .htaccess или положи все файлы за пределы web дерева.
 
index.php:
PHP:
define('IN_SCRIPT', true);

part1.php:
PHP:
if ( !defined('IN_SCRIPT') )
{
	die("Hacking attempt");
}

# опередили уже :) :)
 
Кром
у меня страничка полчаса открытой была =)
сначала все открою, потом читаю =)
не видел ответа... =\
 
еще примитив
if (eregi("имяскрипта.php",$PHP_SELF)) {
die("Forbiden");
}
 
кому примитивное, кому вполне такого решения достаточно. да и как быть если сервер IIS?
 
demongloom
Перетащить инклуды выше документ_рута

-~{}~ 09.08.05 22:55:

самый простетский способ)
 
Наиболее универсальный метод, как мне кажется, это использование константы, как описал nerezus, т.к. теоретически может возникнуть ситуация, когда использовать htaccess не предоставится возможным. Т.е. если писать полностью универсальный скрипт, то лучше юзать константу (!!!не переменную, а константу, т.к. тогда придется учитывать register_globals), а если уж наверняка знаешь где, когда и с какими возможностями будет работать твой скрипт, то можно действовать изходя из ситуации. Тут, конечно же, htaccess очень полезная и удобная штука. Сам ее юзаю :) т.к. всегда знаю, что там, где сидит мой проект, использование этой фичи будет возможный.

Кстати phpBB юзает константу, т.к. их скрипты ориентированы на массы. Так что разного рода администраторам не приходится подгонять этот скрипт под свой хостинг.

-~{}~ 10.08.05 08:52:

Автор оригинала: nikit87
demongloom
Перетащить инклуды выше документ_рута

-~{}~ 09.08.05 22:55:

самый простетский способ)
Опять же, с точки зрения универсальности этот метод не годится, т.к. далеко не всегда такая возможность предоставляется.
 
Сверху