php include的妙用,实现路径加密

yipeiwu_com6年前PHP代码库
1、中转程序include.inc
复制代码 代码如下:

<?
include_once 'include/Base.php';
$path = '';
$url = isBase::decrypt(urlDecode($_SERVER['QUERY_STRING']));
parse_str($url); //获取通过url地址GET传递过来的变量
if(!empty($_POST['path'])){ //获取POST传递过来的变量
$path = $_POST['path'];
$path = isBase::decrypt(urlDecode($path));
}
//解析真实路径
if(empty($path)){
//header("Location: login.php");
exit;
}
if(!preg_match("/(^http:\/)|([?|&|=])/",$path)){
//跳转到实际执行文件的路径
chdir(dirname($path));
include_once basename($path);
exit;
}
?>

index.php与include.inc同目录
复制代码 代码如下:

<?
include include.inc;
?>

2、修改程序中的链接()
复制代码 代码如下:

"index.php?".encrypt("path=/test/test.php&test=123&test2=4321")

3、修改程序中的POST表单
Form都提交到为 index.php
中间加一个隐藏表单 <hidden name=path value="/test/test.php">

4、修改前端Html页面的路径
baseref=/test

5、加解密函数,朋友们自己动手写吧。

总结:
用这种方法比较繁琐,只能隐藏后台脚本的路径,前端的脚本路径仍然可以在源文件中看得到(baseref) 在地址栏上看到的地址都是index.php?xxxxxxxx

相关文章

PHP面向对象程序设计之接口用法

接口是PHP面向对象程序设计中非常重要的一个概念。本文以实例形式较为详细的讲述了PHP接口的用法。具体如下: 接口:interface 在PHP中,我们可以规定,一个对象应该具有哪些公共...

用PHP的反射实现委托模式的讲解

委托模式是软件设计模式中的一项基本技巧。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。委托模式是一项基本技巧,许多其他的模式,如状态模式、策略模...

学习php设计模式 php实现门面模式(Facade)

学习php设计模式 php实现门面模式(Facade)

一、意图 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层次的接口,使得子系统更加容易使用【GOF95】 外部与子系统的通信是通过一个门面(Facade)对象进行。...

PHP操作MongoDB GridFS 存储文件的详解

复制代码 代码如下:<?php //初始化gridfs $conn = new Mongo(); //连接MongoDB $db = $conn->photos; //选择数...

php 远程包含文件漏洞分析第1/6页

几乎所有的cgi程序都有这样的 bug,只是具体的表现方式不一样罢了。 一、涉及到的危险函数〔include(),require()和include_once(),require_onc...