【老鼠讲故事系列 0006】老鼠被锤全记录

前言

这是一个新的系列,小老鼠尝试把各种乱七八糟的技术问题当成故事去讲,不知道会不会有同学爱听。 最后会埋下一个扣子,做个收费,价格一块钱(这次例外),愿者上钩。

本篇末尾有 14% 的内容被隐藏,需付费阅读。

请在阅读前确认你了解并理解了上述内容,以上,防杠

发生了什么

事情很简单。我写了一个脚本 自动展开全文 ,还挺受人欢迎。然后我想进行进一步的优化,这就需要一些数据的支持。比如我很想知道下面两个数据:

  • 大家使用的都是什么脚本管理器。因为不同的脚本管理器提供的支持不同,需要做相应的优化;
  • 大家对于脚本的更新频率是怎样的。如果更新的很频繁,那我每做出一点新功能就立刻发出来。如果更新的不频繁,那我就把功能积攒到一起,尽可能每次发布的都是稳定版本。

所以我为脚本加入了一个统计代码,就是最普通的,几乎每一个网站上都有的第三方统计代码,当然我做了一点点改造,就是带上了上面我需要的两个数据。这里我们先确定两个问题:

  • 几乎所有网站、软件、扩展等,都会带有类似的统计代码,并且很少有向用户说明的,大家也习以为常。
  • 我们发送的每一个网络请求中都必然会包含类似 IP 地址,浏览器 UA 等信息,简单分析,既可获得所在的地域,使用的网络运营商,浏览器版本,操作系统等信息。可以说这些用户信息对于每一个网站都是公开的。

我为了加入这个统计代码,又做了哪些内容呢:

  • 在脚本说明中明确写出,我会加入统计。后来又特地写了一条评论,详细的解释了这件事情,并且将链接也放在了脚本的说明之中。
  • 我为统计代码做了延迟加载,要等页面加载完成三秒之后才尝试加入统计代码。这可能造成统计数据的不准确,但有尽我的能力,去尽量保证了不对用户产生影响。
  • 我一直在对统计代码部分进行优化,因为不需要用户浏览的页面信息。所以后来将统计代码改为了每天只插入一次。
  • 我遵循了用户的 DNT(禁止追踪)的建议,如果设定为禁止追踪,则不会插入统计代码。

我觉得我的做法已经可以算是业界良心了,像延迟加载这类优化基本上可以说是毫无必要的,但我还是去做了。当然这其中有两个小瑕疵:

  • 为什么我没有在脚本最初就加入统计代码。因为我根本没有想到会有这么多用户,而用户少的时候也没有对用户进行相应分析的需求。
  • 加入统计代码之后,为什么没有通过弹窗去明确的通知用户。因为做这个功能需要能够在全局保存一个标记,来记录这个用户已经进行过弹窗通知了,这样才能够控制弹窗的次数。但有一些脚本管理器并不支持这样的全局数据,结果这些用户就会在每次遇到匹配页面时都收到弹窗,那脚本基本就不可以使用了。我很想知道这种情况在用户中的占比,这也是我做统计的原因之一。

好了,情况都介绍完了。然后我就被一些人给中评差评,各种贴标签:

  • 无良作者
  • 收集用户信息
  • 隐私
  • 大量
  • 敏感
  • 恶意
  • 霸权
  • 被戳穿
  • 嘴脸
  • ……

开始我很迷惑,因为加入统计代码这个事情是我主动明示的。在最开始收到相关评价的时候,我还特意写了大量的内容去解释。再看上面这些标签,好多让人感到非常莫名。在我加上统计代码之后,我就说出来了,然后我是被戳穿的……

所以我明白了一个问题,就是他们在发表这些评论的时候,其实根本就没有去阅读我写的解释和说明。所以我也就放弃了任何辩解。

他们尝试举报,但是被驳回了,因为:在脚本说明中已经明确的讲出会加入统计代码。并且 GreasyFork 的帮助中明确的写出:

盈利项目(数据追踪、广告、挖矿脚本等)并非禁止,但是作者必须在脚本描述或额外信息栏明确说明。

所以我并没有违规。

不过后来管理还是对我的脚本提出了一些整改意见,因为我引入 js 的姿势不对,注意不是不可以引入,只是不够规范。我也做出了相应的修改。

但是差评在增加,甚至我一度收到这样的提示:

自动展开全文已连续收到差评,请检查您的脚本和回复评价中提出的问题。

那么做一个非常简单的思考:

  • 我自己对这个脚本几乎没有需求
  • 我做这件事情毫无收益
  • 现在我做的不开心

于是我就停更了。


一些解释

作者任性

大概有人会这么去想吧,批评两句就受不了了,这是多么的玻璃心啊。置那么多用户于不顾,这是多么的不负责任啊。

首先,停更完全是我的权利。很多人都忽视了作者有许多权利这个事实,而只想着作者应该输出,毫无所求的输出。

然后我来解释一下上面的两个小问题。

我有用户吗?

如果从数据上看,脚本的安装量大概有 3 万。当然这中间不乏安装以后删除的用户,所以这个数据水分是比较多的。那么看一下每日检测更新的数据,最高的一天大概有 7000 左右,这是比较有参考价值的,可以认为我有 7000 左右的活跃用户。

但是在事件发生之前,GreasyFork 上的反馈数量为 10,小众论坛这边大概 100 条适配申请。主要就是说哪一个网站失效了,或者希望我去适配哪一个网站。我都是在看到后的第一时间去处理的。和我说过谢谢,或者表达一下这个脚本好用,对自己有用之类意思的人,大概能有 10 个?!

也许我有用户吧,然而我并感受不到他们。当我被人疯狂差评的时候,当我无奈停更在脚本中加入弹窗的时候,也没有几个人出来说话啊。

所以你让我对哪些用户负责任?

我玻璃心吗?

上面也都说了,他们不看我的解释,不看网站的规则,一心一意给我扣帽子。我为什么要独自去承受这份委屈?

甚至,他们说着我无良,同时研究如何回退到以前的版本。以前的版本不是我写的吗,一边骂着我,一边用着我的东西,奇奇怪怪,可可爱爱吧。

然后,研究着如何进行修改来去掉统计代码。因为 GreasyFork 的规则要求代码不可以压缩和混淆,所以我的代码写的很清楚,他们修改很简单。但是我在注释里也写的很清楚,如果用户禁止追踪,则不插入统计代码。他们看的懂代码,却看不懂注释(我还写的中文注释。

然后还喊着,谁出来复制一份。我告诉他们修改我的代码,这是违反用户协议的。然后他们表示我没有任何权利,他们也会无视任何协议……

后来真的就有人完全将我的代码复制了一份,然后重新发布,删掉了统计代码,也删掉了所有我的信息。这里再次强调,我设置的用户协议是禁止二次分发的。所以我对此进行了举报,举报之后两个小时,管理员便删除了这份脚本,并且顺便删除了我脚本中那些无视版权的评论(所以现在在反馈区看不到完整的争议现场了)。

我能怎么样?

这真的很难,油猴权限本身就比较大,如果用来做坏事儿,那是很容易也很可怕的。所以要求代码不能够压缩和混淆,这是非常合理的。当任何人都可以查阅脚本代码的时候,意味着脚本得到了更多的监督,而有可能提升用户的安全性。

但同时,也让那些无视版权的人,可以非常方便的复制和修改这些代码。

为了对用户负责,我肯定不会选择对代码进行压缩和混淆来提高破解难度。那就只能尽可能小范围的去公开这些代码。所以 beta 版,我选择了收费,3 元钱一个用户,付费,然后加群,在群里公开新脚本的地址。现在对于每个用户,我都要确认他的付费信息,这个费用都有点儿不够我做确认这个操作的工钱。但好歹过滤了一些人。

受伤的是谁……

我还行,心态挺好的。但是说不闹心那绝对是假的。

这几天喝着啤酒看着番,无聊了刷一下骂我的评论,感叹他们发的太慢,供不上我看。

我说了,我没需求,没收益,可以做到真的不在乎。

他们骂完了,走了。以前在评论里说着:“作者不会来回答的”,现在别人问他们问题,倒是我在解答着。尘烟散去,空留一片废墟,只有“无良”作者还守在这里。

7000 个从始至终毫无存在感的“用户”,一个每天弹窗提醒一次的停更的脚本。

骂我的人,未必真的对脚本有需求,如果有,大概也不会如此毫无顾忌。毕竟,这个脚本并没什么技术含量,真正让这个脚本有价值的是持续的维护,让脚本成长,并适应变化。

没有了维护,规则总有失效的时候,那时候就真的一片荒芜了吧。那些回退版本并禁止更新的人,不知道想过这一层没。

把海弄干的鱼不在——《三体》刘慈欣

弄坏这一切的人,并不会在乎这一切。真正有需求的人,才是真正的承受者。

在这样的情境之下,我再有有趣的想法,还会用爱发电么?总要多了一层思考吧。

其他看到此事,或者此类事情的作者们,大概也会多了一层思考吧。

为什么现在有趣的小工具越来越少了呢……

技术补充

DNT

“禁止追踪”(Do Not Track),现在大部分浏览器都支持此设置。然后会在发送的网络请求中加入这一标记,告诉服务器用户不希望被追踪。在前端也可以检测到这一标记。

但这只是一个标记,作为给服务器的一个建议。它没有强制性,就像一些朋友说的,这就是一个君子协定。所以有多少网站和服务遵守这个建议也不太好说。

总之很少有人去提起这个东西,说明他的意义可能并不大。

基本信息

浏览器 UA,形式如下:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36

稍微多看两眼,就很容易识别出其中携带的信息。有兴趣的可以自己详细阅读相关资料。UA 可以修改,但是没什么必要,因为有些网站会根据这个信息去优化相应的浏览效果。

IP 地址,其实现在运营商一般都不会给用户独立 IP 了,从某个角度讲,可能用户会变得更加安全,也更难以通过一个 IP 就确定用户了,因为可能一个小区都是在共享某一个 IP。

有人提到使用“呆梨”(原谅我用谐音了)来检查自己的 IP,这是可行的,但并不是你想象中的那么简单。因为大部分“呆梨”都是透明“呆梨”,就是他并不会隐藏你的用户信息,网站依然可以轻松的获取到你的 IP 地址。而且“呆梨”服务有能力获取到通过他的所有数据,这样增加了一个第三方,反倒变得更加不安全了。除非你有能力获取到一个真的值得信任的高匿“呆梨”,然而这依旧没有多大用途,读完下面一小节,你就会理解了。

哪些隐私才是值得我们重视的

【剩余 14% 的内容请至此处阅读: https://mp.weixin.qq.com/s/iMrAbi4PRNQTGVLlNjaXuA (需付费)】

或用微信扫描下方二维码。

image

Append:2020-08-07 19:08:09

我是真的太天真了,以为这事情就尘埃落定了呢,结果还得附加信息,啧啧~

刚才看到脚本被标记:

此脚本已被报告违反 Greasy Fork 守则。

你们自己点链接进去看吧,喵喵喵,真就可可爱爱的,嗯,十分可可爱爱。

Append: 2020-08-09 18:15:44

看看下面的评论,我渐渐的不想讲了……

我必须完美吗?我必须取悦所有人吗?抱歉,我做不到的。你做得到吗?

没人意识到:权利和义务是对等的。当作者不享有任何权利时,他也没有任何义务了。

都以为我设置限制是为了恶心某些人,然而我并不在乎。真正变化的是用来发电的爱在流失。

每一次失望,带来的改变,都在让公开的分享变得更加局限。这堵墙是一些人亲手砌成的,而不是作者们不想分享。

依然,我的选择做完了。剩下的交给用户吧……

Append: 2020-08-27 06:13:45

时隔三周,这事儿还没完。依旧陆续不断的有人追着差评举报。

昨天发现新发布的脚本已经被打造成了全差评,今天早晨原脚本,又因为过多的举报而被隐藏。

在这篇文章发布之前,原脚本就已经开始提示用户自行卸载了,能用到今天还坚持不卸载,然后过来给我差评的,我也是挺佩服他们的毅力的。

新脚本我已经标明收费了,未付费用户我会当做盗版去看待的,就算我是自助付费,也并不等于随便拿,自助超市里的东西也不是可以随便拿出去的,对吧?

反正看后台的数据有 1000 多人在用,前两天我还特别给这个版本做了功能上的升级,因为使用方法上变化比较大,所以做了一个提示,确认之后就不会再弹出来了。结果就这又触发了一轮举报和差评。

反正这种吃了奶还骂娘的行为,我是不太理解。不过我的新脚本终于完成了初步的开发,喵喵喵~

Append: 2020-09-02 10:18:10

又被举报了,说我弹窗,十分烦人。喵喵喵,那就是提示用户卸载此脚本别的弹窗嗷,不肯卸载,还举报我……

你说上面这个戏码很熟悉?!这次的举报人已经不止两次拿着我这个脚本二次发布了(我举报了他两次),还在描述里“喵喵喵”(你们懂的

不过都一个月了,他们继续 high 吧,我不管了。哪天管理员手抖处理错了就……他们就可以开心的拿着我的代码四处招摇了。

Append: 2021年03月19日 19:14:18

如果完整记录下来,不只是碎碎念,根本就是要变成祥林嫂。所以虽然后面也发生了很多细节的事情,不过我并没有更新这个帖子。

上面各种举报的戏码一直持续不断,只不过不那么频繁了,不过基本都是重复的套路,也不值得脏了大家的耳朵。

刚过完春节发现自己又被举报了,真的是很特别的一份新年礼物呢。而且他成功了。

他说我加入跟踪代码违反了 Greasy Fork 的某一项规定,经管理员确认,我确实违反了。但是这项规定还没有正式实行,对,别说事发当时,就连被举报的时候这项规定都还没有正式实行。我就被这样举报了,而且管理员也确认这个情况确实违反这个规定。但是没做处理,因为就是还没有实行嘛。

我累了,于是我把统计代码去掉了。当然,其实我完全可以遵照这个规定添加一条声明,然后继续保留统计代码。我只是累了。


今天我的公众号又被举报了,跟脚本这件事情不相干,而且这个问题也确实是我的原因。所以就整改一下吧,而且为了避免更多的问题,索性把脚本的付费方式也修改了。大家也都知道,现在个人开发者想要进行收款是非常麻烦的,所以无奈之下,我只好开了一个微信上的小店。

这就是我,一个一心只想写点代码,解决点小问题的家伙,被人逼的去开了店的过程……

这中间消耗了多大的精力也记不清了,反正挺耽误我写代码的。

行吧,希望这件事情就这样了,然后再琢磨一个新的脚本,去解决新的问题。

2 个赞

我没有用过你的这个脚本,但是我做过类似功能的东西.针对csdn博客之类的地方(适配的网站很少就是我长用看见心烦的几个),用css直接展开显示全部内容,跳过了点击展开全文的过程. 我觉得很大程度上,可以用css解决的功能,没有必要用js,这可以避免很多权限和安全的顾虑

1 个赞

哪里都是站着说话不腰疼的人。某些情况下独裁真的比民主有效。
插件挺好用,感谢作者的付出。
然而我是铁公鸡,请统治我吧

几乎所有网站、软件、扩展等,都会带有类似的统计代码

就我而言,用到的,虽然不少有统计的,但绝不是“几乎所有”。greasyfork上的脚本我基本都会审查一遍才会安装,也就部分带有统计之类的。

另外像一楼所说,很多都可以通过 CSS 完成,我目前就通过 uBlock 实现的。当时楼主发了那个脚本不久我就看到了,看了下觉得没太大必要用 js,有些浪费系统资源。而且带了统计就带来一个问题,每次更新就需要更仔细的审查调用外部内容的安全性了。

收费我觉得倒没什么问题,毕竟是个人的劳动成果。

非常喜欢这个插件,感谢你的付出。但你不要每天给反复给老插件用户弹通知提醒了,非常烦,这些用户绝大多数都没有网暴你。

1 个赞

你说的没有错。

  • 每天弹窗很烦
  • 绝大多数人没有网暴我

但这仅仅是从这些人的角度看吧。我的角度呢?

  • 我被人打了,很痛的,我叫唤了,有人说我的叫声扰民,毕竟被打扰的人并没有都动手打我。
  • 我被打趴下了,不能再为大家服务了,我贴个告示,告诉大家,然后被人举报我乱贴广告了。
  • 我被打的时候没人说话,被打完了问我为什么不继续提供免费的午餐……我读书少,不知道该怎么回答。

弹窗确实有点玻璃心啊

有点像“白宫惹了金正恩,于是一个核弹把华盛顿从官员到平民都炸了”

你把弹窗的那两行代码注释掉不就完了。这类事情我一贯都是能自己动手就不麻烦作者的。

具体来说,打开你的脚本编辑器,把代码底端的以下两行给注释掉。

598  ;alert('【自动展开全文】脚本停更,会自动跳转到详细说明页。大家可自行卸载脚本,或更换到 Beta 版')
599  ;GM_openInTab('https://greasyfork.org/zh-CN/scripts/397476')

(当然如果 @dms 觉得这样不妥我会尽快删除)

1 个赞

我并不介意,油猴明文代码就是为了方便用户审查和修改的。

只是按照用户协议不能二次分发,就是自用随意,但是不能传播。

我真的想把事情做绝了完全可以隐藏或者删除脚本,还放在市场上就是给用户留了余地。事情都这样了还跑来说我的不是那种,就……可可爱爱吧

何况我提供了更好用的替代方案,这几天爆更(完全计划外的工作),在某些程度上已经比原脚本好用了。这样的情况下还能指责我,真就是……铁石心肠都得落泪吧。

1 个赞

感谢。

本来想了许多劝慰的话,但思来想去还是不说了,毕竟我嘴拙,说到最后变成火上浇油就不妙了。总之吧,我觉得不顺心的事情如果薅不顺,那尽快忘掉倒也是个法子。

老鼠确实比较委屈,停更和下架也是作者的权利。但是花这么大的精力报复一小波杠精也确实不太理智,尤其用的还是这种“杀敌一百自损一千”的招数。

杠精有什么损失吗?有的杠精可能是一边用着你一边杠着你,没得用是他们的损失,也有的杠精纯粹就是来凑热闹的,可能连你的用户都不是,热闹散了人就走了,老鼠停更、弹窗,人家可是一点损失都没有,还白得了“热闹”。

无差别弹窗对沉默的用户和潜在用户、以及老鼠自己的路人缘的伤害可是实打实的。像我只是因为没有需求而没用过这个脚本,应该算老鼠的潜在用户吧。但如果老鼠以后做什么收费脚本对上了我的需求,我可能也得犹豫一下了,“作者好像有点玻璃心,保不齐哪天在杠精刺激下做出什么来,这样的脚本用起来可没什么安全感,再看看有没有其他的实现方法吧”

1 个赞

收到,已经修改了,谢谢。 :heart:

1 个赞

是哒,确实有一些不妥当。但既然停更了,也没有改回来的打算。

其实我没啥损失。上面也说过了,没需求,没收益,没啥可在乎的。

真正受到影响的人,从始至终没说话,大概他们也不在乎吧。

  • 沉默用户,抱歉,免费软件,我没有任何承诺。毕竟他们也没去为挽留这个软件做一点什么。
  • 潜在用户,已经转付费了,三元钱的门槛真好用,现在大家都很奈斯~
  • 路人缘,我有我的个性,喜欢我个性的有缘人啊,我们做盆友吧。(反正我总也没办法取悦所有人

弹窗不友好,但我做了说明,并提供了解决方案。我对免费用户尚且如此负责。(这也木有看出来的……过滤掉也罢,否则闹心的还是我。


以及你看,当我不打算去除弹窗之后,楼上已经不理我了,当面改掉我的代码,并一言不发。完全忘记了这些代码是我写的。

其实这个事情是有发展过程的。

  • 连续差评,我写了停更 公告
  • 遭到举报,我设置了一次性弹窗
  • 被差评刷满界面,我设置了每天一次的弹窗

一个靠爱发电的事情,做的不开心,就算啦~

现在我的心情,会影响到的是对外公开版本(自助付费)的更新频率。但是付费群里完全不受影响。

所以,我的选择做完了,接下来做选择的是用户啦~

你的关注点是事情本身,而杠精的关注点永远是攻击你本人,根本不在一个频道上,所以交流是不可能交流的,别尝试用讲道理的方式说服杠精

这种时候可以从当事人的角度“跳出来”,简单地解释到明眼路人能看清是怎么一回事的程度就可以了,别那么认真地浪费生命给他们做多余的回应。像这次,一两次百十来字的回应,可能比陆陆续续几千个字的回应效果更好。抬杠的人就是这样,你反应越激烈他们越开心,只要让打了很多字的杠精产生一种碰了一鼻子灰的感觉,他们自讨没趣就走了(这样可能都不会有后来恶意刷举报刷差评什么的

1 个赞

发现问题后我就不和他们掰扯了,这边是自己的事后总结,也写给关注这事儿的朋友们,叫大家放心。

最开始我是放了几百字说明问题,然后被刷了一堆差评(差评比以前五个月的评论多),复制我代码重新发布……所以并不只是挨骂而已。我不挣扎怕是现在都死挺了。

最近有几个用户在举报脚本,反正就是各种无法说明违规详细的恶意举报

包括我的脚本也被举报了……用爱发电,又没任何恰饭行为!

我的第一感受就是,这人发布的恰饭脚本,被人举报了,所以开着小号到处恶意报复吧

可精彩了,各种奇葩理由,包括评论也是。给你分享一个,一起乐呵乐呵

我知道这人,典型的喷子,还有“GCC-GNU”、“勐撒机萪”两个人,他们说话风格很像,我甚至怀疑是同一个人

https://greasyfork.org/zh-CN/scripts/29762/reports/3484
我的脚本举报理由真的是可笑……

我就是看它们的差评发现你也中枪了~

没啥办法,我还是努力写我的脚本吧。

可以发布只能凭链接进入的脚本,虽然也并不能真正解决问题。

或者纯英文描述,包括反馈也全英文,大概可以拦住一大群人……

1 个赞

只要GF不改变现有的注册和评价、举报机制,降低普通用户的权限,喷子依旧
网站又不绑定手机。

脚本提高使用门槛拦不住喷子……

o(︶︿︶)o 唉~
我只是需要一个能够友好分享脚本的地方,我更新,别人打开浏览器自动更新,用就行了

为的就是降低朋友的使用门槛……