释放双眼,带上耳机,听听看~!
前言
前几天写了篇简单防止被镜像(反向代理)的教程
[post]1346[/post]
但是代码简陋,功能不够完善,所以今天就出了这款插件 Tejzfd
插件截图
使用
下载后将文件上传到网站 /usr/plugins/
目录下,解压并把文件夹名typecho-Tejzfd-master
改成Tejzfd
然后到后台启用即可。
插件设置
设置域名白名单:一行一个,不能为空。白名单中存在的域名反代主站时不会执行插件事件
网站协议: 跳转主站域名使用的加密协议
主站域名:如果当前域名不存在白名单中且存在恶意反代情况时,则跳转主站域名
代码 · 下载
<!–TePass start–>
插件代码
<?PHP
if (!defined('__TYPECHO_ROOT_DIR__')) exit;
/**
* 防止网站被镜像(被别人反向代理)
*
* @package Tejzfd
* @author Inkedus
* @version 1.0.0
* @link http://zhuchunshu.com
*/
class Tejzfd_Plugin implements Typecho_Plugin_Interface
{
/**
* 激活插件方法,如果激活失败,直接抛出异常
*/
public static function activate()
{
Typecho_Plugin::factory('Widget_Archive')->header = array('Tejzfd_Plugin','render');
}
/**
* 禁用插件方法,如果禁用失败,直接抛出异常
*/
public static function deactivate(){
return _t("禁用成功");
}
/**
* 获取插件配置面板
*/
public static function config(Typecho_Widget_Helper_Form $form)
{
/** 分类名称 */
$domain = new Typecho_Widget_Helper_Form_Element_Textarea('domain', NULL, $_SERVER['HTTP_HOST']."\nwww.".$_SERVER['HTTP_HOST'], _t('域名白名单'),_t('一行一个'));
$form->addInput($domain);
$xieyi = new Typecho_Widget_Helper_Form_Element_Select('xieyi',array('http://'=>'http://','https://'=>'https://'),'http://','网站协议','默认:http://');
$form->addInput($xieyi);
$tzurl = new Typecho_Widget_Helper_Form_Element_Text('zdomain', null, $_SERVER['HTTP_HOST'] , _t('主站域名'), '如果当前域名不存在白名单中,则跳转主站域名');
$form->addInput($tzurl);
}
/**
* 个人用户的配置面板
*/
public static function personalConfig(Typecho_Widget_Helper_Form $form){}
/**
* 插件实现方法
*/
public static function render()
{
$config=Typecho_Widget::widget('Widget_Options');
$array=explode("\n",$config->plugin('Tejzfd')->domain);
if (empty($config->plugin('Tejzfd')->domain)) {
# 如果配置域名为空
echo <<<HTML
<script type="text/javascript">
alert("插件配置出错,禁止反代插件域名配置不能为空");
</script>
HTML;
die('插件配置出错,禁止反代插件白名单域名配置不能为空');
}else{
# 如果配置域名不为空
$host=$_SERVER['HTTP_HOST'];
if (!in_array($host, $array)) {
# 如果当前域名不存在白名单中
if ($config->plugin('Tejzfd')->zdomain==$host) {
print_r($array);
}else{
header("location:".$config->plugin('Tejzfd')->xieyi.$config->plugin('Tejzfd')->zdomain);
}
}else{
echo <<<HTML
<script type="text/javascript">
console.log('禁止反代插件已启用,当前状态:访问域名在白名单中存在');
</script>
HTML;
}
}
}
}
<!–TePass end–>
这个密码也是错的,额
改了,少了一个字母