как защитить модули сайта от несанкционированного запуска из вне?

Духовность™

Продвинутый новичок
как защитить модули сайта от несанкционированного запуска из вне?

у меня есть крутая админа с крутой защитой, но в директории /admin/actions/operations/suboperations лежит невинный файлик следующего содержания:

PHP:
if (!empty($_REQUEST['id_region']) && $id_region = intval($_REQUEST['id_region']))
{
// проверка на наличие
// если существует, то удалить регион с с заданным id_region
}
- этот файл инклюдится в систему админа, как вы понимаете...

Собственно, как сделать так, что бы когда кулхацкер имея мои коды, не получил никакого результата сделав запрос вида http://server.ru/admin/actions/operations/suboperations/delete_region.php ?


Просто объявить при авторизации тру-админа константу и везде в модулях проверять её наличие? Есть другие более тру-варианты? А то ИМХО каждый модуль править это не тру.
 

Духовность™

Продвинутый новичок
Пасибо.

deny from all помог. положил в папку actions

-~{}~ 15.01.08 12:31:

или все же это плохая практика и лучше через средства PHP тоже делать проверку? Кто как думает?

-~{}~ 15.01.08 12:35:

не, всеже этот вариант самый тру наверно
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
admin/index.php
define('IN_ADMIN',.....................);
include('filename.php');

filename.php
if (!defined(.................................)){die('Хакер? Хе-хе....');}

где-то так.
 

kruglov

Новичок
A1x
Опасаетесь, что сервер неожиданно так заглючит, что php в целом останется работать, а все остальное (включая поддержку констант) отвалится?
 

AmdY

Пью пиво
Команда форума
когда правлю чужой код, либо пишу малюсенькие скрипты, делаю как написал Mr-Max.
В больших проектах, когда используется куча скриптов, токое не есть хорошо.
В идеале, твои скрипты, вызванные на прямую не должны ничего делать, меняй архитектуру
 

A1x

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

Духовность™

Продвинутый новичок
AmdY
вызванные на прямую не должны ничего делать
ну и как подобное реализовать? если добавить проверку как Mr_Max писал - ничего не случится. ты имел в виду подобного рода защиту или кардинальное переделывание функционала?

вообще то приведенный пример модуля вынесен в отдельный файл ишь по причине удобства.
 

AmdY

Пью пиво
Команда форума
В файле должны находиться библиотеки, классы и функции, которые будут вызываться извне, а не выполняющийся код.
 

Духовность™

Продвинутый новичок
дык, извините, это логика приложения, я не могу никуда от неё деться и писать её всю в файл в один...

пример можно?
 

AmdY

Пью пиво
Команда форума
PHP:
index.php
<?php 
if (......) { include_once('delete_region.php'); delete_region_run(); }
?>
delete_region.php
<?php 
function delete_region_run() {
if (!empty($_REQUEST['id_region']) && $id_region = intval($_REQUEST['id_region'])) { 
// проверка на наличие 
// если существует, то удалить регион с с заданным id_region 
}
}
?>
 
Сверху