全站文章水印【文章泄露可溯源用户】

引言

相信做文章、小说等类型博客的博主会有个很头疼的地方

就是一个付费会员截图绕过复制粘贴泄露文章导致收入下降

作用

在看到自己的文章泄露,可以溯源查出到底是谁泄露的

搭配手机号注册、实名认证、禁用开发者工具(F12)和Ctrl+U

网站服务配置nignx反爬虫、nignx禁用view-source协议

可以实现精准溯源,后续可以依法起诉追究责任

应用

此处初始化设定只应用到文章,如需自定义请修改此处

is_singular('post')

输出

  1. 输出昵称
  2. 输出UID
  3. 输出邮箱【取前后4位】保证隐私
  4. 浏览的时间

此处初始化设定只输出以上4项,如需自定义请修改此处

$current_user = wp_get_current_user();
        $user_id = $current_user->ID; // 获取用户昵称
        $user_name = $current_user->display_name; // 获取用户昵称
        $user_email = $current_user->user_email; // 注意:直接显示邮箱可能违反隐私政策

如果需要输出用户的IP地址,可以在运行代码$new_time上方添加以下代码

if (isset($_SERVER['HTTP_CLIENT_IP'])) {
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    } elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } elseif (isset($_SERVER['HTTP_X_FORWARDED'])) {
        $ip = $_SERVER['HTTP_X_FORWARDED'];
    } elseif (isset($_SERVER['HTTP_FORWARDED_FOR'])) {
        $ip = $_SERVER['HTTP_FORWARDED_FOR'];
    } elseif (isset($_SERVER['HTTP_FORWARDED'])) {
        $ip = $_SERVER['HTTP_FORWARDED'];
    } else {
        $ip = $_SERVER['REMOTE_ADDR'];
    }

效果

5250fd2cddb82f789ef608a83ba439ab

代码

运行代码

添加位置:站点根目录/wp-content/zibll/func.php

如果没有func.php文件,请自行新建,并添加标头

<?php

在func.php文件最下方添加运行代码

//  全站文章防盗水印
function output_watermark()
{
    $new_time = date('Y-m-d H:i:s', time());
    if (is_singular('post')) {
        echo '<div id="watermark">';
        // 计数器变量
        $row_count = 0;
        $reverse_display = false; // 标记是否反向显示
        $current_user = wp_get_current_user();
        $user_id = $current_user->ID; // 获取用户昵称
        $user_name = $current_user->display_name; // 获取用户昵称
        $user_email = $current_user->user_email; // 注意:直接显示邮箱可能违反隐私政策

        for ($i = 1; $i <= 300; $i++) {
            // 准备要输出的内容
            $output = '';

            // 根据反向显示标记构建输出字符串
            if ($reverse_display) {
                $output = '浏览时间:' . $new_time . '&emsp;邮箱:' . substr($user_email, 0, 4) . '****' . substr($user_email, -4) . '&emsp;UID:' . $user_id . '&emsp;用户:' . $user_name . '&emsp;';
            } else {
                $output = '用户:' . $user_name . '&emsp;UID:' . $user_id . '&emsp;邮箱:' . substr($user_email, 0, 4) . '****' . substr($user_email, -4) . '&emsp;浏览时间:' . $new_time . '&emsp;';
            }

            // 输出内容
            echo $output;

            // 每4条记录后添加一个换行符(但不在第4条后添加额外的换行,所以这里用 % 4 != 0 判断)
            if ($row_count % 4 == 0 && $row_count != 0) {
                echo '<br>'; // 注意:这里实际上是在每组的最后一条记录后添加换行,但由于循环会继续,所以下一条记录会紧接着输出
            }

            // 每8条记录改变一次反向显示标记
            if ($row_count % 4 == 0) {
                $reverse_display = !$reverse_display; // 切换反向显示标记
            }

            // 更新计数器
            $row_count++;
        }
        echo '</div>';
    }
}

add_action('wp_footer', 'output_watermark');
//  全站文章防盗水印

样式代码

添加到后台子比主题设置—>自定义代码—>自定义CSS样式

/*  全站文章防盗 */
#watermark {
    position: fixed;
    bottom: -200%;
    left: 0%;
    transform-origin: bottom left;
    transform: rotate(-45deg);
    color: rgba(2, 250, 142, 0.1);
    font-size: 20px;
    font-weight: bold;
    white-space: nowrap;
    pointer-events: none;
    z-index: 9999; /* 确保水印位于其他内容之上 */
}

#watermark.simple {
    writing-mode: horizontal-tb; /* 水平书写(默认) */
    text-orientation: mixed; /* 混合方向(默认)或根据需要设置 */
    white-space: nowrap; /* 防止文字换行 */
    transform: rotate(-45deg) translate(-50%, -100%); /* 旋转并调整位置,但注意这可能需要进一步微调 */
    /* 注意:translate的值可能需要根据你的具体需求和布局进行调整 */
}
/*  全站文章防盗 */

 

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容