本经验主要介绍一下织梦DedeCMS模板防盗的方法。众所周知,织梦的模板是.htm的文件,所以一般如果不做特别的设置的话,别人只要知道你的模板路径和模板文件的名字,就可以通过浏览器直接浏览你的模板了。织梦的模板也是织梦网站的重要资源,所以做好织梦模板的防盗就相当重要了哦。下面就开始介绍织梦模板防盗的方法。
一、系统文件修补法
系统文件修补法这种方法呢,显得比较麻烦一点。也要求对织梦(DedeCMS)系统有一定的熟悉度才建议这样来做。因为我们做的模板,往往是不太全面的,比如当我们的站只有文章模型的时候,那么通常就不会去制作其它模型的风格(比如:软件、商城、图集等),所以在这种情况下,当有用户访问了我们不存在的文件路径之后,就有可能暴露网站的模板目录。
那么我们的解决方法,就是删除在具体文件中的提示语(最后通过PHP注释符来进行注释),比如在内容页解析文件(/include /arc.archives.class.php)中,就有如下这一段:
if(!file_exists($tempfile)||!is_file($tempfile))
{
echo "文档ID:{$this->Fields['id']} - {$this->TypeLink->TypeInfos['typename']} - {$this->Fields['title']}";
echo "模板文件不存在,无法解析文档!";
exit();
}
那么就可以将他们进行注释掉,如:
if(!file_exists($tempfile)||!is_file($tempfile))
{
// echo "文档ID:{$this->Fields['id']} - {$this->TypeLink->TypeInfos['typename']} - {$this->Fields['title']}";
// echo "模板文件不存在,无法解析文档!";
exit();
}
#p#副标题#e#
二、模板内容入库化
这种方法相比上一种显得更方便点。简单来说,就是利用织梦(DedeCMS)系统的自定义标记(mytag)来加载。具体实现方法是新建一个自定义标记 (mytag),然后将我们需要隐藏模板文件中的所有代码全部拷贝到自定义标记的内容中。
然后,就是将刚才需要隐藏的那个模板文件中的所有代码全部清空并替换为以下代码:
{dede:mytag name='list' ismake='yes'/}
其中红色加粗的list就是自定义标记(mytag)的标记名称!这样就算是被人猜解到了模板路径,那么下载后也会是一个无法使用模板。因为它无法知道您的这个宏标记的具体内容,这个具体内容已经被存到了数据库里了。
三、
301重定向跳转
这个相比以上两种方法更简单有效,但是对您的服务器环境有特殊要求:必须支持.htaccess或httpd.ini的自定义配置——URL重写技术。我们这里以.htaccess为例,比如您的模板目录为:/templets/xuewl_com/ ,那么就可以使用下面的代码进行301重定向:
RewriteEngineOn
RewriteBase/
ErrorDocument404/
RewriteRule templets/xuewl_com /
Nginx 301重定向域名:
在Nginx扩展设置(server段)加入以下代码:
location ~*^/templets {
rewrite ^/templets/(.*)$ http://noniu.com permanent;
}
其中,http://noniu.com是你想要跳转到的网址。
#p#副标题#e#
四、文件403禁止方法
403方法是禁止目录文件被读取,需要主机支持.htaccess文件。我们知道,织梦的模板是.htm后缀的文件,只要在templets禁止浏览器加载.htm文件就可以实现模板防盗了。具体的办法是在templets文件夹内,放置一个.htaccess文件。.htaccess文件的内容如下:
<Files *.html>
Order Allow,Deny
Deny from all
</Files>
注意事项
301重定向和403禁止方法需要主机支持重定向或者.htaccess文件
因为源码的编码问题,不能用记事本打开编写,需要使用dreamweaver或者其他专业文本编辑器