1.中转程序include.inc
- <?
- include_once 'include/Base.PHP';
- $path = '';
- $url = isBase::decrypt(urlDecode($_SERVER['QUERY_STRING']));
- parse_str($url); //获取通过URL地址GET传递过来的变量
- if(!emptyempty($_POST['path'])){ //获取POST传递过来的变量
- $path = $_POST['path'];
- $path = isBase::decrypt(urlDecode($path));
- }
- //解析真实路径
- if(emptyempty($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;
- ?>
3.修改程序中的POST表单
Form都提交到为 index.PHP,中间加一个隐藏表单 <hidden name=path value="/test/test.PHP">
5.加解密函数就由自己提供了
总结:用这种方法比较繁琐,只能隐藏后台脚本的路径,前端的脚本路径仍然可以在源文件中看得到(baseref),在地址栏上看到的地址都是index.PHP?xxxxxxxx.