Tejzfd – Typecho 防止被反代插件

释放双眼,带上耳机,听听看~!

前言

前几天写了篇简单防止被镜像(反向代理)的教程
[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–>

人已赞赏
PHP技术杂烩网站建设

Flarun SEO优化插件1.2更新

2020-6-21 1:12:00

PHP学习笔记技术杂烩源码分享网站建设资源文件

Zcstime插件 为typecho添加建立及已运行时间

2020-6-22 1:08:00

2 条回复 A文章作者 M管理员
  1. 这个密码也是错的,额

    • 改了,少了一个字母

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索