爱意满满的作品展示区。
zhishixiang

利用蹩脚的 js 知识写了一个统计真实访客数量的脚本

  •  1
     
  •   zhishixiang ·
    zhishixiang · Jun 13, 2022 · 4070 views
    This topic created in 1470 days ago, the information mentioned may be changed or developed.

    趁着高考结束后闲着无事,入门了网页和小程序开发,刚学完 ajax 没多久,打算写一个小项目作为总结,于是便有了此项目。

    本项目基于前端请求后端、后端记录数据的方式统计访客数据,使得静态网站也拥有了展示访客数据的功能。且本项目还利用了 cookies 来防止重复提交数据,确保记录真实访问量。本来是想只给自己的网站用的,但后面还是决定开源了(虽然 js 脚本开不开源都无所谓)。

    后端搭建在了腾讯云的 serverless 云函数上,国内访问速度应该是有保证的,经过测试响应时间均不超 50ms ,个人感觉还是相当不错的。

    项目地址: https://github.com/zhishixiang/visitorStatistic ,由于刚学没多久因此代码非常烂,希望大佬们轻喷。

    34 replies    2022-06-15 15:56:57 +08:00
    zhw2590582
        1
    zhw2590582  
       Jun 13, 2022
    可以做成图片,前端不用任何 js 代码
    zhishixiang
        2
    zhishixiang  
    OP
       Jun 13, 2022
    @zhw2590582 准备研究 python 图像处理,到时候说不定能整出来
    zhishixiang
        3
    zhishixiang  
    OP
       Jun 13, 2022
    @zhw2590582 有个问题:直接请求图片能否记录 cookies
    lllllliiii
        4
    lllllliiii  
       Jun 13, 2022
    @zhishixiang 这个就只能用 ip 来做唯一性判断了
    zhw2590582
        5
    zhw2590582  
       Jun 13, 2022   ❤️ 1
    可以的,可以查一下响应头 set-cookie 的用法
    doublleft
        6
    doublleft  
       Jun 13, 2022   ❤️ 1
    linzhipeng
        7
    linzhipeng  
       Jun 13, 2022
    @doublleft 哈哈哈哈哈
    linzhipeng
        8
    linzhipeng  
       Jun 13, 2022
    这是打算大学报考计算机专业了么
    zhishixiang
        9
    zhishixiang  
    OP
       Jun 13, 2022
    @doublleft 反正纯内网访问,不慌
    fe619742721
        10
    fe619742721  
       Jun 13, 2022   ❤️ 1
    @zhishixiang 密钥管理其实也是工程的一部分,这里可以研究一下合理通用的方案,养成好习惯
    autoxbc
        11
    autoxbc  
       Jun 13, 2022
    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
    learningman
        12
    learningman  
       Jun 13, 2022 via Android   ❤️ 1
    就你这拿 format 拼 sql ,当 ctf 题出给大一的都算送分
    learningman
        13
    learningman  
       Jun 13, 2022
    learningman
        14
    learningman  
       Jun 13, 2022
    建议你立刻下线 demo ,不然明天可能就要来问 MySQL 被黑了怎么办了
    zhishixiang
        15
    zhishixiang  
    OP
       Jun 13, 2022
    @learningman 已经说是烂代码了┑( ̄Д  ̄)┍
    zhishixiang
        16
    zhishixiang  
    OP
       Jun 13, 2022
    @learningman 研究了一会,看不懂,已经直接 reset hard 了
    xitler
        17
    xitler  
       Jun 13, 2022
    lz 加油~
    Danswerme
        18
    Danswerme  
       Jun 13, 2022
    同款密码,我以前也用过这个密码哈哈哈哈哈
    zhishixiang
        19
    zhishixiang  
    OP
       Jun 13, 2022
    @learningman 已经进行防注入处理了
    zhishixiang
        20
    zhishixiang  
    OP
       Jun 13, 2022
    @learningman 你删了这个回复吧,点进去还能看到密码
    Shorekeeper
        21
    Shorekeeper  
       Jun 13, 2022
    @zhishixiang V2EX 的回复好像是不可删除的,(除非 @ 站长?)
    learningman
        22
    learningman  
       Jun 13, 2022
    @zhishixiang 你处理在哪了,你这不还是字符串拼 SQL
    learningman
        23
    learningman  
       Jun 13, 2022
    @zhishixiang 你先 filter-branch ,然后找 GitHub 交工单删敏感信息,就不说我删不了回复了,就算能删除你这不是掩耳盗铃
    learningman
        24
    learningman  
       Jun 13, 2022
    用了 prepare statement ,算是改善了点吧,但是你这 render 好像还是能反序列化的样子
    zhishixiang
        25
    zhishixiang  
    OP
       Jun 13, 2022
    @learningman 以前写 flask 都是在内网跑的,没怎么注意防注入,看来以后得开始研究了
    greatghoul
        26
    greatghoul  
       Jun 14, 2022
    就你这动手能力,高考成绩什么的,感觉已经不重要了。
    KJR5OR04CnCiWf02
        27
    KJR5OR04CnCiWf02  
       Jun 14, 2022
    校长刚才说要破格录取你了!
    cy1027
        28
    cy1027  
       Jun 14, 2022
    它看起来好像出了点小问题
    zhishixiang
        29
    zhishixiang  
    OP
       Jun 14, 2022
    @cy1027 什么问题
    lisongeee
        30
    lisongeee  
       Jun 14, 2022
    小小的建议:js 代码尽量不要用 var ,用 const/let ,另外既然都是 serverless 为啥不前后端都用 js 呢

    腾讯云 serverless 我记得现在收费了,阿里云 /cloudflare 现在还是有免费额度的

    另外也可以看看我的,使用 vue 模板 ssr 的 计数器: https://github.com/lisonge/visit-counter
    doublleft
        31
    doublleft  
       Jun 14, 2022
    @zhishixiang #9 https://my.toho.red/archives/81/ 但是你用的都是同一个密码哇
    isSamle
        32
    isSamle  
       Jun 14, 2022
    这么卷吗
    zhishixiang
        33
    zhishixiang  
    OP
       Jun 15, 2022
    @doublleft 那条回复竟然没隐藏,看来得改改了
    zhishixiang
        34
    zhishixiang  
    OP
       Jun 15, 2022
    @lisongeee 以前学 js 一直是 var ,最近没怎么补 js 的知识。腾讯云 serverless 有学生优惠,一年才 20 几,打算嫖完再换别家。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1143 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 68ms · UTC 18:02 · PVG 02:02 · LAX 11:02 · JFK 14:02
    ♥ Do have faith in what you're doing.