埋点统计设计

首先,新建一个html页面,用户打开,在里面插入一个1px的图片
如下所示:

index.html
<!DOCTYPE html>
<html>
<head>
    <title>埋点统计</title></head>
<body>
<p>aa</p>
<img src="http://www.cpb.com?userid=111">
</body>
</html>

然后查看url地址的接口代码

$data = $_GET['userid'];
#todolis 做一些数据统计之类

header('Expires: Mon, 01 Jul 2003 00:00:00 GMT', true);
header('Last-Modified: '.gmdate('D, d M Y H:i:s').'GMT');
header('Cache-Control: no-cache, must-revalidate'); // HTTP/1.1
header('Pragma: no-cache'); // HTTP/1.0
header('Content-type: image/gif');
print base64_decode('R0lGODlhBQAFAIAAAP///yH5BAUUAAEALAAAAAAFAAUAAAIEjI+pWAA7');

实际效果:
在这里插入图片描述

优化:
举个类子,现在图片的url后面的参数是明文模式,转换为加密模式
1.后台使用redis的hash类型存一个key参数和value(m5d解密之后的值),每次从里面匹配参数
2.自己写个加密解密的函数

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
// [ 应用入口文件 ]

function my_encrypt($data, $key) {
    $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
    $encrypted = openssl_encrypt($data, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
    return base64_encode($iv . $encrypted);
}

function my_decrypt($data, $key) {
    $data = base64_decode($data);
    $iv = substr($data, 0, 16);
    $encrypted = substr($data, 16);
    return openssl_decrypt($encrypted, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
}

$url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
if ($url) {
    // 获取?号后面的参数部分
    $pos = strpos($url, '?');
    if ($pos !== false) {
        $data = substr($url, $pos + 1);
    }
}


// 解密
$key = 'my-secret-key';

$encrypted = $data ;
//$encrypted = my_encrypt($data, $key);
$decrypted = my_decrypt($encrypted, $key);
file_put_contents("./aa.log",$decrypted);

//加密
//$data = 'userid=1&group=2';
//$encrypted = my_encrypt($data, $key);

#todolis 做一些数据统计之类

header('Expires: Mon, 01 Jul 2003 00:00:00 GMT', true);
header('Last-Modified: '.gmdate('D, d M Y H:i:s').'GMT');
header('Cache-Control: no-cache, must-revalidate'); // HTTP/1.1
header('Pragma: no-cache'); // HTTP/1.0
header('Content-type: image/gif');
print base64_decode('R0lGODlhBQAFAIAAAP///yH5BAUUAAEALAAAAAAFAAUAAAIEjI+pWAA7');




效果所示:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值