趁着高考结束后闲着无事,入门了网页和小程序开发,刚学完 ajax 没多久,打算写一个小项目作为总结,于是便有了此项目。
本项目基于前端请求后端、后端记录数据的方式统计访客数据,使得静态网站也拥有了展示访客数据的功能。且本项目还利用了 cookies 来防止重复提交数据,确保记录真实访问量。本来是想只给自己的网站用的,但后面还是决定开源了(虽然 js 脚本开不开源都无所谓)。
后端搭建在了腾讯云的 serverless 云函数上,国内访问速度应该是有保证的,经过测试响应时间均不超 50ms ,个人感觉还是相当不错的。
项目地址: https://github.com/zhishixiang/visitorStatistic ,由于刚学没多久因此代码非常烂,希望大佬们轻喷。
1
zhw2590582 2022-06-13 16:20:28 +08:00
可以做成图片,前端不用任何 js 代码
|
2
zhishixiang OP @zhw2590582 准备研究 python 图像处理,到时候说不定能整出来
|
3
zhishixiang OP @zhw2590582 有个问题:直接请求图片能否记录 cookies
|
4
fzdwx 2022-06-13 16:32:30 +08:00
@zhishixiang 这个就只能用 ip 来做唯一性判断了
|
5
zhw2590582 2022-06-13 16:32:32 +08:00 1
可以的,可以查一下响应头 set-cookie 的用法
|
6
doublleft 2022-06-13 16:34:55 +08:00 1
|
7
linzhipeng 2022-06-13 16:40:01 +08:00
@doublleft 哈哈哈哈哈
|
8
linzhipeng 2022-06-13 16:40:23 +08:00
这是打算大学报考计算机专业了么
|
9
zhishixiang OP @doublleft 反正纯内网访问,不慌
|
10
fe619742721 2022-06-13 16:46:45 +08:00 1
@zhishixiang 密钥管理其实也是工程的一部分,这里可以研究一下合理通用的方案,养成好习惯
|
11
autoxbc 2022-06-13 17:14:36 +08:00
document.domain 是已废弃属性,建议用 location.host 替代;
https://developer.mozilla.org/zh-CN/docs/Web/API/Document/domain Web 标准中提供专用的 Beacon API 来发送统计数据,可以考虑用一下; https://developer.mozilla.org/zh-CN/docs/Web/API/Beacon_API |
12
learningman 2022-06-13 17:16:27 +08:00 via Android 1
就你这拿 format 拼 sql ,当 ctf 题出给大一的都算送分
|
13
learningman 2022-06-13 18:04:12 +08:00
https://github.com/zhishixiang/visitorStatistic/commit/3184b172b74b1d8a99b4efe9666b7fc46a99610b
你密码还是漏的,你得 filter-branch |
14
learningman 2022-06-13 18:06:33 +08:00
建议你立刻下线 demo ,不然明天可能就要来问 MySQL 被黑了怎么办了
|
15
zhishixiang OP @learningman 已经说是烂代码了┑( ̄Д  ̄)┍
|
16
zhishixiang OP @learningman 研究了一会,看不懂,已经直接 reset hard 了
|
17
xitler 2022-06-13 20:46:50 +08:00
lz 加油~
|
18
Danswerme 2022-06-13 21:04:38 +08:00
同款密码,我以前也用过这个密码哈哈哈哈哈
|
19
zhishixiang OP @learningman 已经进行防注入处理了
|
20
zhishixiang OP @learningman 你删了这个回复吧,点进去还能看到密码
|
21
SunsetShimmer 2022-06-13 21:18:33 +08:00
@zhishixiang V2EX 的回复好像是不可删除的,(除非 @ 站长?)
|
22
learningman 2022-06-13 21:23:26 +08:00
@zhishixiang 你处理在哪了,你这不还是字符串拼 SQL
|
23
learningman 2022-06-13 21:24:26 +08:00
@zhishixiang 你先 filter-branch ,然后找 GitHub 交工单删敏感信息,就不说我删不了回复了,就算能删除你这不是掩耳盗铃
|
24
learningman 2022-06-13 21:29:33 +08:00
用了 prepare statement ,算是改善了点吧,但是你这 render 好像还是能反序列化的样子
|
25
zhishixiang OP @learningman 以前写 flask 都是在内网跑的,没怎么注意防注入,看来以后得开始研究了
|
26
greatghoul 2022-06-14 07:39:37 +08:00
就你这动手能力,高考成绩什么的,感觉已经不重要了。
|
27
KJR5OR04CnCiWf02 2022-06-14 09:42:21 +08:00
校长刚才说要破格录取你了!
|
28
cy1027 2022-06-14 10:30:51 +08:00
它看起来好像出了点小问题
|
29
zhishixiang OP @cy1027 什么问题
|
30
lisongeee 2022-06-14 14:35:42 +08:00
小小的建议:js 代码尽量不要用 var ,用 const/let ,另外既然都是 serverless 为啥不前后端都用 js 呢
腾讯云 serverless 我记得现在收费了,阿里云 /cloudflare 现在还是有免费额度的 另外也可以看看我的,使用 vue 模板 ssr 的 计数器: https://github.com/lisonge/visit-counter |
31
doublleft 2022-06-14 15:57:18 +08:00
@zhishixiang #9 https://my.toho.red/archives/81/ 但是你用的都是同一个密码哇
|
32
isSamle 2022-06-14 16:29:07 +08:00
这么卷吗
|
33
zhishixiang OP @doublleft 那条回复竟然没隐藏,看来得改改了
|
34
zhishixiang OP @lisongeee 以前学 js 一直是 var ,最近没怎么补 js 的知识。腾讯云 serverless 有学生优惠,一年才 20 几,打算嫖完再换别家。
|