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

  • Автор темы 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 или создать ключ, который проверять в каждой из частей.. Какие есть ещё выходы??
 

demongloom

Новичок
или вставить переменную в index.php
$access = true;

а в остальные файлы вставить в самом начале скрипта следущее
if(!isset($access)) {
die("access denied.");
}
 

Кром

Новичок
demongloom
Нет, это примитивное решение. Используй для защиты .htaccess или положи все файлы за пределы web дерева.
 

nerezus

Вселенский отказник
index.php:
PHP:
define('IN_SCRIPT', true);
part1.php:
PHP:
if ( !defined('IN_SCRIPT') )
{
	die("Hacking attempt");
}
# опередили уже :) :)
 

nerezus

Вселенский отказник
Кром
у меня страничка полчаса открытой была =)
сначала все открою, потом читаю =)
не видел ответа... =\
 

antson

Новичок
Партнер клуба
еще примитив
if (eregi("имяскрипта.php",$PHP_SELF)) {
die("Forbiden");
}
 

demongloom

Новичок
кому примитивное, кому вполне такого решения достаточно. да и как быть если сервер IIS?
 

nikit87

Новичок
demongloom
Перетащить инклуды выше документ_рута

-~{}~ 09.08.05 22:55:

самый простетский способ)
 

MasterSID

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

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

-~{}~ 10.08.05 08:52:

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

-~{}~ 09.08.05 22:55:

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