V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
bjzhou1990
V2EX  ›  JavaScript

Greasy Fork 上的脚本 V2EX base64 decode 被举报下架了,原因是:代码经过最小化处理

  •  
  •   bjzhou1990 · 2021-09-29 18:12:29 +08:00 · 5183 次点击
    这是一个创建于 1185 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Greasy Fork 上的代码还不能最小化了?
    19 条回复    2021-10-01 13:23:05 +08:00
    krixaar
        1
    krixaar  
       2021-09-29 18:16:09 +08:00   ❤️ 7
    starsky007
        2
    starsky007  
       2021-09-29 18:38:54 +08:00 via Android   ❤️ 1
    最小化的话,万一干坏事呢?
    wu67
        3
    wu67  
       2021-09-29 19:02:49 +08:00
    所以我都是直接挂 GitHub 上, 然后通过 gf 发布, 这样他就会直接把我 GitHub 上的源码转过去了, 不存在什么最小化 /压缩 /混淆的问题
    autoxbc
        4
    autoxbc  
       2021-09-29 19:07:09 +08:00
    确实不能最小化,扩展和油猴都不行,出过好几个加料的案例了
    chengyiqun
        5
    chengyiqun  
       2021-09-29 22:35:31 +08:00
    不要最小化, 防止偷偷加料难以发现.
    flyhaozi
        6
    flyhaozi  
       2021-09-29 22:54:47 +08:00
    用户脚本有啥最小化的必要吗
    ch2
        7
    ch2  
       2021-09-29 23:15:00 +08:00 via iPhone   ❤️ 1
    你的代码在用户那里只会分发一次,有必要最小化?
    coolair
        8
    coolair  
       2021-09-29 23:31:56 +08:00
    谁的电脑都不差这十几 K 的存储吧。
    Vegetable
        9
    Vegetable  
       2021-09-29 23:45:06 +08:00
    。。。这个道理很难理解吗?
    RanKaede
        10
    RanKaede  
       2021-09-30 08:54:33 +08:00
    不需要网络传输的东西为什么需要最小化呢?
    Trim21
        11
    Trim21  
       2021-09-30 10:30:37 +08:00 via Android
    用打包工具打包是可以的,压缩是不行的。

    (带上一堆打包工具自己的辅助函数也挺破坏可读性的…)
    bjzhou1990
        12
    bjzhou1990  
    OP
       2021-09-30 10:49:35 +08:00
    @ch2 base64 函数内置的不好用,用了三方的,我也没必要还专门去把他代码还原回去呀。。。
    seakingii
        13
    seakingii  
       2021-09-30 11:15:16 +08:00   ❤️ 1
    @bjzhou1990 是的你没必要.所以别人举报不符合规则的项目是有必要的.

    为什么在别人的平台上,以自己为中心?
    ysc3839
        14
    ysc3839  
       2021-09-30 11:49:39 +08:00
    @bjzhou1990 “base64 函数内置的不好用”

    只是解码纯文本的话,内置的有什么问题吗?是需要编码转换功能?
    0017
        15
    0017  
       2021-09-30 15:39:24 +08:00
    @bjzhou1990 这不是风险更大了么,如果三方的里面加料了呢?
    Indexyz
        16
    Indexyz  
       2021-10-01 07:25:30 +08:00 via Android   ❤️ 1
    @ysc3839 Browser JavaScript 内置的 Base64 函数( atob / btoa )不支持 utf8
    codehz
        17
    codehz  
       2021-10-01 12:48:26 +08:00   ❤️ 1
    @Indexyz 谁说不支持的,js 的 string 可是很魔法的存在,F12 测试下看看

    btoa(Array.from(new TextEncoder().encode("❤️UTF-8 测试")).map(x=>String.fromCharCode(x)).join(''))
    // "4p2k77iPVVRGLTjmtYvor5U="
    new TextDecoder().decode(new Uint8Array(atob("4p2k77iPVVRGLTjmtYvor5U=").split('').map(x=>x.codePointAt(0))))
    // ❤️UTF-8 测试
    codehz
        18
    codehz  
       2021-10-01 12:59:13 +08:00
    注:得到 4p2k77iPVVRGLTgg5rWL6K+V 是因为 V2EX 加了个空格(
    UnluckyNinja
        19
    UnluckyNinja  
       2021-10-01 13:23:05 +08:00
    不能最小化不能混淆,引用的库尽量 require 官方的 cdn 分发版本,实在没有的话,greasyfork 上有专门的用来作为依赖库的分类,可以找现成的或者自己传,传完再 require,直接嵌入的必须明确说明。总之就是需要你主动来解释代码,不给源码也不说明,相当于放弃为自己的辩护了
    1 楼贴的官方规则写的很清楚了:“库是应被 @require 的脚本,除非因为技术原因不能这么做。如果一个库被内嵌入了脚本,那么你必须一并提供库的来源(比如一行评论指向原始地址、名称以及版本)。”
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2714 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:02 · PVG 20:02 · LAX 04:02 · JFK 07:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.