我开发了一个基于 Beancount 的账本托管服务 HostedBeans,欢迎大家来了解纯文本复式记账并试用我的服务。
归档 2013 年 6 月

出售WordPress主题是违法的

标题党了,应为:出售WordPress主题,并禁止二次分发的行为是违反协议的。

所谓二次分发就是说,我购买了这个主题,然后我又将我买到的主题分享或出售给其他人。

略绕口,听我细细道来。

起因是今天瞧到了一个不错的主题,但是是收费的,于是我又想起来这茬了,开始查相关的资料。

中文的资料没太多的权威性,大部分还是翻的英文的资料。

WordPress使用GPL授权[注1][注2], GPL是一个非常严格的,意图保证源代码自由的协议。

即GPL保障任何人,以任何目使用,获取源代码,修改,分发的自由。

除此之外,GPL还具有苛刻的“传染性”,任何形式的衍生作品,都必须采用同样的GPL协议。

“Themes are GPL, too”注3这是WordPress创始人Matt Mullenweg于官方博客发表的文章,大意是经过认真地研读GPL和相关法律,WordPress的主题和插件作为衍生作品,必须使用同样的GPL协议。

其理由是,主题和插件与WordPress是不可分割的部分。主题使用了WordPress提供的接口,在运行时,WordPress和主题存在着交叉调用的行为,主题可以控制WordPress运行的几乎所有细节。不能认为WordPress是一个运行环境,而应该认为主题是对WordPress的扩展,是WordPress的衍生作品。

但图片资源, CSS 和 JS脚本例外,因为它们的运行,与WordPress是分离的,在服务器端由Web服务器提供,在客户端由浏览器运行,并未参与到WordPress的运行逻辑中。

所以,主题的PHP(包括混杂了PHP的HTML)文件必须使用GPL授权, 静态资源不受此限制,但因为GPL的规定,它们必须分别单独打包发布,否则会被传染。

Matt Mullenweg还要求SFLC(自由软件法律中心)澄清WordPress主题面临的法律问题,SFLC认可上述观点注4.

GPL并不限制出售源代码,但关键在于二次分发,GPL保障了购买者二次分发的自由,因此购买者可以随意分享甚至出售购买到的主题。

除非作者提供了额外的服务,如针对性地协助修改源代码,否则在这种情况下很难谈出售了,因为任何人都可以代替你来出售…

WordPress在其官网注5委婉地写道“我们认为主题和插件作为衍生作品应当使用GPL, 但目前这还属于法律上的灰色地带,你至少应当使用Apache, BSD等开源协议”.

而同样是GPL授权的Drupal则强硬得多注6, 明确要求所有插件必须以GPL发布。对于是否可以出售主题,其写道注7“你可以出售主题,但必须保障其他人二次分发的自由”,同时还指出,如果代码经过了混淆或压缩,应当提供未经混淆的版本。

在官网论坛,有人提出注8, 是否可以自己建立一个网站,收集付费主题,并提供免费下载。回复者表示这种行为是当然是合法的,但是好像在质疑他的动机,这帖子我没大看懂,有点太长了。

同时这篇文章注9还指出,法官更可能将WordPress的GPL许可证考虑在先,因此即使主题作者声称禁止二次分发,这种声称也是无效的,任何人依然可以合法地进行二次分发。

结论:

  • WordPress主题和插件是WordPress的衍生作品,必须使用GPL授权
  • 可以出售WordPress的主题和插件, 但GPL赋予了购买者二次分发的权利
  • 不能发布经过加密,混淆,编译的代码,除非提供一份原始代码
  • 即使主题作者声称禁止二次分发,任何人依然可以合法地进行二次分发
  • 这样的话,如果仅仅是出售源代码,没有额外的服务,根本不可能收到钱
  • 除非将静态资源分别打包,否则它们也会被GPL传染

参考:

小璐是好人。

今天体育活动课,手机没电了,无聊,看着你做物理题,很酷的样子。可你敢不敢让我看看是什么题做了那么久那么费劲。让我坐了半节课,总之我还是很无聊,除了我又想到了一些乱七八糟完全不挨边的记忆碎片。

这一周状态都不怎么样,周一到周五,在学校基本都是一睡就是一整天,脸被压得都是印子…晚上在家躺下又睡不着,楼下工地连下雨都不停工了,躺下一个小时还睡不着,索性决定不睡了——这样反而能把作息调过来。但拿起手机,不到半个小时又困了…一直这样,连着几天了。

今天倒是只睡了三节课,和前几天比算少的,总体来说算正常。今天从凌晨开始,RP主机的两个节点就约好了似的一起抽风。今天白天上课我和我亲爱滴上帝们刷了几百条聊天记录,因为学校坑爹的网速,到现在(临近放学)也不能确认到底发生了什么,还得等我回家再说。所以手机就早早地没电了,所以连睡觉的心情都没有了。

想初三临近中考的不到四个月时间,我也曾扑在学校功课上过。我不大喜欢提这段日子,因为从上高中以来,对高中教育越来越失望,觉得当时的努力是不值得的,如果我是去一个略“不好”一点的市重点,或者哪怕不是十中的“快班”,也许老师会更加看重综合能力,而不仅仅是分数。在十中,虽然有几个志同者,但可惜道不合——他们还是要考大学的,没有多少多余的精力。扯远了…

想初三,从我“扑在学校功课”上之后,几乎是立刻就和班里以前从不说话的(爱学习)的妹纸们搞好了关系(我们班学习的男生…真心没有吧),挨个抓住问各种题,主要是数学和英语。数学和英语,以及不想睡觉的时候,去第一排听课,反正临近中考已经不剩几个人了,有得是空座。其他课困了就回最后一排睡觉,初中两年我的座位一直都在最后一排,不像现在的班主任,前前后后来回调。扯远了…

想初三,英语是我的硬伤之一,于是去找英语老师,约好每天做一张模拟卷,她给我讲解。后来我也没坚持下去,大概只坚持了不到两周吧。因为英语这个硬伤,我以前也一直对英语老师忽冷忽热的,说起来感觉自己都没脸见人家…没想到现在相比其他科目,我英语倒算是分高的,上次期中考试85分…这意味着这半年混英文社区有点成效,即使是和学校课程重叠的部分也接近及格了。扯远了…

想初三,上面说的种种其实也只坚持了差不多两个月而已,一方面是我的数学和英语分数确实都上来了,一方面是我在犹豫去哪个高中甚至上不上高中。总之,中考前的最后两个月,有点泄气了的感觉。无聊,就用忘记是哪个老师送我的本子写日志,当时的日志已经接近现在的水平了,虽然有些话题略显幼稚。坐在第二排的妹纸喜欢看我的日志,于是那是我字写得最好的一个本子。我但凡写下的东西,都是给人看的,但是我不喜欢别人看我没写完的文章。虽然我写的日志题目和内容看起来完全没关系,我嘴上也说毫无关系,但我心里死活认为段落安排,题目的挑选,是有只可意会不可言传之精妙的,看了一半,当然意会不到了。又扯远了…

我也怀念那段日子,像每一个同学一样,像老师期望的那样,为一个单纯的目标去努力,即使是徒劳无功的,即使是“对人生没有一丁点”帮助的(《那些年,我们一起追过的女孩》). 像初中那样,占着几个科目的第一,可以天天粘着老师跑。像现在的炮哥那样在除了语文和英语以外的科目那么潇洒。

就像前一阵搞社工库那样,看同学们一天天吊儿郎当的样子(今天看你做题,我收回这句话好了),我总觉得如果是我,我可以做的更好…

现在我多少还有那么一丁点自卑吧,尤其对那些不是很熟的同学找我借书,借卷子(其实根本不可能还了), 有些语气还特别硬。先不论我以后会不会心血来潮突然用到,你们总说“反正你不用,行个方便”,方便个毛啊,直接不发我卷子,也不用收我钱了岂不是更方便。

现在我说忙也忙,日程表排得很满,GFW还三天两头给我找点麻烦。说闲倒也闲,因为我从来没按日程表走过,总是一拖再拖。而且我还有时间看读者意林青年文摘的鸡汤文,有时间看小说绘那些架空小说,上课有时间玩手机,回家有时间打游戏。说实话看看学校功课的精力也是有的,但是,我一直没找到一个好的理由说服自己这么做,终究不是同路人啊。

恰相反,我觉得上大学才是逃避,你以为考个二本甚至一本有多难(最近勉强从新闻中对这些词有了点概念), 然后我按部就班上大学,什么事情都不用自己操心,照着做就是了,这才叫逃避。和你们不一样,我的目标清晰,明确,不去实现,那就是逃避。唉~终究不是同路人啊。

妹纸说不要我搞社工库

这个博客创建于精子 7 岁第一天上学的时候,之后的十几年里精子的成长和价值观的改变是很大的。
所有的日志发布之后除了错别字都不会再修改,因此他可能并不完全同意早期日志中的观点。

简单说,社工库是这样一个神奇的东西,你只需要输入一丁点信息,如QQ号,或姓名,手机,就可以查到一个人的其他个人信息。除了QQ, 姓名,手机外,还会有身份证,住址等等,甚至包括他在各大网站的帐号和密码。

行外人可能惊奇于它是如何实现的。事实上网络比你想象得要险恶得多,各大互联网公司时刻都在收集你的个人信息。一个人,一个公司,总会有疏忽,这些资料一旦被泄露出来便无法挽回。久而久之,从这些泄露的资料中找到一个人显得十分简单。

所谓社工库就是要将这些泄露的资料汇总到一起,让查询更为方便,自动化。同时通过计算,在这些资料中挖掘出更多的关联。已经有人在这么做了,但我觉得我能做得更好,所以我开始对这个项目感兴趣。现在流行谈“大数据”,一个人掌握百G级别的数据并加以利用,是很有诱惑力的。

但这种项目的法律风险是显而易见的,我意识到,一旦我付出了努力,我绝不会放弃,也不会甘心于“内部使用”,我一定会(视图)将它做大,但相应的风险是我承受不了的。

于是我决定放弃这个项目,但我依然希望有人能够实现它,所以接下来我将描述关于这个项目我所设想到的所有技术细节,如果有人感兴趣,我可以进一步提供技术方面的指导,不感兴趣的看到这里可以洗洗睡了。

我决定给它起个代号叫做 BC.

BC计划由PHP编写,PHP是最通用,最容易部署的Web语言之一。事实上BC中,PHP的逻辑很少,大部分工作是数据库来完成的,所以使用PHP之外的其他语言来实现也没有问题。当然,如果你需要收费的话,还需要引入一个用户系统。

我决定使用三款数据库:MySQL, MongoDB, Memcached.

MySQL用于储存用户数据,和其他的一些数据量较少的信息。这是因为相比于MongoDB, MySQL还是更为稳定和成熟的。

社工库的主体由MongoDB储存,MongoDB在平时是只读的(平时需写入的数据在MySQL中).

每一份泄露出来的资料都有不同的格式,比如 .mdb, .xls, .sql, 纯文本等等。

我们必须将它们以统一的格式导入到MongoDB中,否则一切都是空谈。

我能想到的最为通用的格式是CSV, 上述各种格式都可以很轻松地被转换到CSV, 而PHP内置了对CSV的支持,更何况自行解析简单的CSV也并不复杂。

我们需要为每一份导出的CSV编写PHP脚本,以将这些数据逐条导入到MongoDB中,好在各个CSV差不多只是字段顺序上的区别。

每一份资料所包含的字段都可能不同,不过这也没有关系,反正MongoDB是无模式的。

至于查询,就很简单了,接下来我们讨论性能优化。

如果不对MongoDB进行索引,那么每次查询都需要遍历百G级别的数据,这是无法容忍的。

BC的情况略为复杂,用户名,QQ, 手机号,这些字段都可能被用作查询。

所以我建议,先使用1G左右,较为典型的数据进行实验,根据结果对查询量最高的2-3个字段添加索引。

分片是MongoDB的重要功能之一,通过分片可以将查询均衡到多台服务器,利用更多的内存来加速查询。

借助于分片,理论上BC可以实现无限扩充,至于片键,还需要通过之前的实验来选择,当然,我觉得更大的可能性是选择用户名做片键。

除了最为基本的查询,我们还可以提供更多的功能。

如通过用户名,查询到了一个手机号,我们可以自动地根据这个手机号继续查下去,挖掘出更多可能同属一个人的信息。

但这样,原来一次简单的查询就可能变成十几次查询,这将会对数据库造成极大的压力。

细想一下,如果没有新的信息(泄露资料)加入,那么查询的结果是不会改变的,所以我们要引入缓存。

Memcached是一种选择,不过实际上,使用文件来缓存已经足够。

我们缓存每一次查询的结果(可以直接是HTML输出)到文件,再有重复的查询时,我们无需经过数据库,只需访问文件缓存即可。

而每当有新的泄露资料加入时,我们要清空缓存。

对于服务器选择,我的建议是选择同在内网的若干台服务器,一台提供Web服务,其他的作为MongoDB以及缓存服务器。

选择2G内存的服务器,每台储存50G的数据。数据服务器不接入外网,Web服务器通过内网向数据服务器进行查询。

至于盈利模式可以选择会员制,以下功能都是收费点:

  • 是否可以使用索引之外的字段进行查询
  • 是否自动查找关联帐号
  • 是否仅可以查看缓存

附我前几天在邪红色论坛发的帖子:

我也想搞个社工库,大家意向如何

如题

我一毛钱的库都没有,但我有资金,有技术,有兴趣。

我对社工什么的不是很了解,我主要是对“大量的数据”感兴趣。

功能:

一个搜索框,可以搜用户名,QQ,邮箱,手机号码等。

查询结果可显示符合条件的帐号的更多信息。

同时,还会显示和这个帐号相关联的其他帐号(例如他们都使用了同一个手机号码).

同时利用这些数据我们还会搞一些公益的项目,如统计最为常用的密码等等。

盈利模式:

每月收取会员费,不限查询次数,未付费用户限每天1-10次查询。

显示关联帐号也算会员的高级功能。

上传新数据可抵会员费。

技术细节:

数据库使用MongoDB, 服务器打算用Linode的服务器,使用Linode的主要原因是数据服务器不用外网IP,直接用内网。

我会为每一个社工库写脚本,统一转入我们的数据库,进行统一的分析。

工期:

一个月出雏形,两个月正式运营。

FAQ:

Q:会员费大概多少?

A:预计如果是100G左右的数据,会员费大概在10元/月,如果数据量增加,会员费显然也要加。

Q:如何防御攻击?

A:因为数据服务器没有公网IP,不会被DDOS. 提供Web服务的服务器即使被DDOS,也可以随时再开一台新的服务器。

Q:不限查询次数的会员帐号如何防止被人互相借用,导致没人购买新的会员

A:登录帐号即可直接修改密码,对被盗帐号不予找回,看谁还敢借别人——敢借的都是真朋友,我们就不管了…

Q:邪红色有特别福利么?

A:有,等着。

1235

精子生于 1995 年,英文 ID jysperm.

订阅推送

通过 Telegram Channel 订阅我的博客日志、产品和项目的动态:

王子亭的博客 @ Telegram


通过邮件订阅订阅我的博客日志、产品和项目的动态(历史邮件):

该博客使用基于  Hexo  的  simpleblock  主题。博客内容使用  CC BY-NC-ND  授权发布。最后生成于 2023-12-20.