admin管理员组文章数量:1633739
一、单一入口
名词解释
单一入口:控制web应用程序访问只有有限个入口
例:博客项目控制单一入口
--
<?php session_start(); include './global.php'; $control = './Controller/'.$_GET['action'].'.php'; if (!file_exists($control)){ die('404 Not Found Error!'); } $allows = ['login','login_action']; if (!in_array($_GET['action'],$allows) and empty($_SESSION['Admin'])){ die('NO LOGIN!'); } include "$control";
其中,$allows为限制访问,if条件控制。
当用户未登录情况下,只能访问login.php与login_action.php文件。
但是,目前的情况下,用户仍然可以通过直接访问文件目录访问页面,如index.php
为彻底规避用户访问,有两种方法:
1、在bootstrap.php文件中定义常量
defined('START',true);
在各个非入口文件设置:如在index.php中添加
if(!defined('START')) die('非法访问');
2、在nginx限制目录
用表达式限制
3、进一步优化
首先:try_files 查找文件
如果找不到,交给bootstrap.php处理
效果:
链接地址随便写,都指向bootstrap.php
4、url伪装
代码改成
访问变成
二、路由
不希望URL地址跟文件直接关联,实现间接关联
$router=[ '/^\/main$/' => './Controller/index.php', '/^\/content/' => './Controller/content.php', '/^\/login/' => './Controller/login.php', ]; foreach ( $router as $key => $value) { if (preg_match($key,$_SERVER['DOCUMENT_URI'])){ $controll = $value; break; } }效果:
1、正向路由 router分离(反向路由,通过文件得到链接地址)
版权声明:本文标题:MVC -单一入口与路由 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1729175258a1188634.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论