Коротко и просто (для CLI):

м веб-приложении есть множество модулей. Каждый модуль имеет основной скрипт php, который загружает подмодули на основе запроса, отправленного главному модулю:

//file: clientes.php

//check for valid user...
//import CSS and JS...

switch( $_GET["action"] )
{
    case "lista" :          require_once("clientes.lista.php"); break;
    case "listaDeudores" :  require_once("clientes.listaDeudores.php"); break;
    case "nuevo" :          require_once("clientes.nuevo.php"); break;
    case "detalles" :       require_once("clientes.detalles.php"); break;
    case "editar" :         require_once("clientes.editar.php"); break;         
    default : echo "<h1>Error</h1><p>El sitio ha encontrado un error.</p>";
} 

Этот основной модуль имеет дело с безопасностью и импортирует много ресурсов, которые нужны всем подмодулям. Большая проблема проявляется, когда пользователь запрашивает любой из подмодулей, минуя все меры безопасности на главном модуле! Моя идея состояла в том, чтобы добавить строку в каждый подмодуль, чтобы проверить, вызывается ли он напрямую и запретить доступ, или он вызывался через другой скрипт, и продолжить Меньше всего я хотел бы повторить проверку безопасности для каждого отдельного файла, так как он выполняет несколько запросов к базе данных.

Сценарий php знает, был ли он вызван черезrequire_once() или прямой звонок? Я пытался реализовать какой-то$_SERVER['REQUEST_URI'] а также$_SERVER['PHP_SELF'] ловушка, но мне было интересно, есть ли какой-то элегантный способ сделать это.

Ответы на вопрос(0)

Ваш ответ на вопрос