扫一扫浏览

防止别人通过路径查看你的模板文件方法汇总apache篇

未结贴
0 559
yaosean未认证 2018-12-26 14:04:54
收藏

很多时候我们写完代码只关心功能的问题,却忽略一些细节的小问题,今天我给大家分享一个禁止用户直接访问模板的问题

一般普通用户是不会做这种事情的,但万一别个也是做程序的人,就有可能知道你模板路径的情况下直接访问你的模板,例如:后台的这样一个模块

tpframe 后台模板

别人就可以通过http://你的域名/theme/backend/menu/index.html 而查看你的模板文件,不须要任何验证,然后像查看普通html源码那样查看到你的模板文件代码

tpframe 后台模板源码

不管是什么框架,都有可以存在这样的问题,那么通过哪些方法可以避免这些问题呢,下面给大家分享几点办法,部分内容来自互联网收集

1、在文件夹下面用.htaccess文件(apache)配置限定

<FilesMatch ".(html|php|exe)$">
order allow,deny
deny from all
</FilesMatch>

就上面的这种情况就在theme下面创建.htaccess文件加入上面的内容即可

当然你可以在具体的html模板所在访目录,例如\theme\backend\menu\里面添加.htaccess文件加入上面的代码,但这样写要在每一个模板里面加,显示有得麻烦,所以我就直接在最上层模板目录里面统一加了,上面的的意思表示禁止访问以html、php、exe结尾的文件,当然你不能禁止所有,因为图片跟css是须要能访问的

2、配置.htaccess文件

还可以通过另外的一种配置方式RewriteRule来达到目的

注意:此时的.htaccess文件是在根目录里面配置,配置内容例如:

<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule theme/(.*).(html)$ – [F]
</IfModule<

关键代码RewriteRule theme/(.*).(html)$ – [F],表示禁止访问theme下面的所有.html文件

3、调整目录位置

把模板或不能让用户直接访问的文件放到WEB目录外面

你们下载的thinkphp5.x版本可以看到,里面有一个public文件夹,默认入口文件就是放到这个文件夹(index.php)里面,因此很多用户习惯配置文件根目录在上级目录,这种情况你访问网站就是这样访问的:http://你的域名/public/index.php,这路径明显多了一个public,你看着肯定很不舒服吧,因此正确的配置网站根目录应该指定到public文件夹

thinkphp 目录结构

这样你就可以直接通过你的域名直接访问了http://你的域名/index.php

该文章由tpframe发布,禁止转载

如果你有更好的办法,欢迎在下方留言讨论

最近热帖 HOT TOPIC
thinkphp5隐藏默认模块的一些问题 1486
【全套视频】thinkphp5视频教程 1442
教你如果处理高并发数据不同步的问题php篇 1238
tpframe安装教程 1187
TPFrame框架robot模块重磅来袭,内附2.1版本 1181
tpframe新建主题 1159
父元素flex之后,子元素高度自适应问题 1152
tpframe应用目录结构 1107
slide模块发布 1095
thinkphp5自动完成操作,两次运行的详解 1087
月度热议HOT COMMENTS
tpframe 后续版本你希望有的功能是什么(分享贴) 12
关于tpframe的一点话题 6
cms插件在分类排序的时候JSON错误 6
基于tpframe v3.x 的微信公众号插件已批量上线 5
新增的管理员没有权限操作CMS模块。 3
api接口文档插件easydoc的基本用法,快速搞定接口文档 3
tpframe插件tcms插件v2.2已发布上线,欢迎下载使用 3
thinkphp5自动完成操作,两次运行的详解 2
tpframe-curd操作之添加数据 2
tpframe能带给你的,让你快速搞定各服务端(api,pc,mobile,wechat)代码的框架 2
爆料早知道:TPFrame v3.2版本已更新我有好想法