漫谈PT构架(1):NexusPHP简介

Rhilip 2018-07-24 AM 15132℃ 11条

(起一个大坑,看看什么是否能填完。目前没想好写关于PT构架的哪些东西,但先开个小头吧~

NexusPHP简介

根据其代码中的介绍(aboutnexus.php 页面)来看:

NexusPHP由来自浙江大学的Nexus团队发起并开发完成。主要是提供一个完整的、有序的、重视用户信誉和知识的资源分享社区的解决方案,是一个PT(Private Tracker,即私有的Tracker服务器,是BT下载的一种)开源软件。

aboutnexus.jpg

(当然也有人和我说,这是某浙大生毕业设计作品Orz

虽然一遍一遍的在群里鄙视着NexusPHP的垃圾代码,但不得不承认就目前来看国内PT圈依然在大量使用NP(这里应该不用做详细数据统计了吧2333)。

而其他一些尝试,诸如:

  • Gazelle:国外著名PT架构,然而部署安装略麻烦,且纯英文界面。国内曾有人尝试翻译并建站,然而该主比我还不靠谱,以致于在17年度被人提及是开站狂魔2333。此外就目前看TVPlay这个基于Gazelle的国内剧集站点现状比一滩死水还不如。
  • YoRHa:根本没有人知道的国内构架,主要原因是因为基于ThinkPHP的构架并没有完成23333,作者曾在PT吧发过主贴 【20171009】开源一个国产PT项目...【pt吧】_百度贴吧 ,而且目前demo还存活(并开放debug模式),但已经有一段时间没有进行更新了Orz。
  • meanTorrent:同样是一个国内开源框架,基于Node.js,同样部署安装麻烦(后面会具体讲~)。目前主站被人戏称(实际是官方简称)地雷站 ,但就我目前感觉,迈的步子有些大——一方面,过于绚丽的前端对于PT是否需要值得思榷;另一方面,主站目前只接受1080P的一些规定是否在站点初期有利于发展。此外,该站积分策略、上传方式中的一些不同与NP的新形势新方法,对于已经在NP惯性中的使用者来说是不是能很快适应。这些都要经过时间的考验,毕竟今年6月(2018年6月)也才正式上线。
  • TBsource:基于PHP,是NP的前身,应该也就只有CFFBits以及TTG这种远古站点在使用了吧~
  • XBNBT: 一个基于C++的构架,国内就只有紫荆PT在使用。
  • 其他一些在Discuz基础上修改的tracker:这块多为自己写的,而且未能找到公开repo,在此仅作站点列举:六维空间、北交知行、天雪PT。

所以,面对众多的 NP改 站点来说,其实这个古老的(甚至连官网都挂了的)架构依然在支撑着国内PT网站的运行。

缺陷

但是从现代的角度来看NP,我们其实能发现很多问题。

有些属于已经被发现漏洞,多为跨站请求类以及SQL注入类。截止目前(2018/7/19),在 国家信息安全漏洞库 中以 NexusPHP 为关键词搜索可以找出近26条记录 。

CNNVD.jpg

而更多被诟病的其实是其代码架构过于老旧也不宜于维护。下面列几点我印象比较深刻的:

  • 使用这个mysql已经被抛弃的库(PHP 5.5.0起废弃,PHP 7.0.0起移除),而不是mysqli库或PDO库。而PHP 7至少从评测上看,执行效率比PHP 5优秀很多~
  • 代码使用print等方式输出网页。项目受限于时代背景,没有使用MVC等先进思想。
  • 数据库设置不合理,大量查询以及写入语句落在 users 以及 torrents 等表上,造成数据表过热,故当站点人数过多或者种子数过多时,对站点所在服务器配置要求极其高(譬如NPU就因搜索问题换用外挂搜索引擎);而另一方面,诸如faq、rules这些应该可以直接静态输出的却使用数据库进行存储(估计是为了多语言支持)
  • torrentsrss.php页面对passkey是否存在没有进行检查,导致非站内用户能通过构造相关链接直接读取站内所有种子信息。(部分站点已经修复这个漏洞)

目前分支情况

鉴于NP在很早之前就已经停止维护(Github上停留在7年前,即2011年),目前很多使用NP作为基础架构的站点都对其进行了一定的改良。我仅从用户体验(比如前端页面的更改)将站点分成以下几类:

  • 基本没怎么动: 不得不说,很多站点对原始NP模板并没有进行修改(这是句瞎话,比如BYR看起来和原版似乎一模一样,但是后端的修改还是挺多的;又如二娘,修改了种子的BUFF系统。)。但其实不管该站Sysop到底出力没出力,都可以将对应站点视为一个模板。
  • 葡萄:该前端模板将个人信息做成置顶栏,而不是和基本模板一样放在导航栏之下。种子搜索增加“随意看看”。

putao_group.jpg

  • 蝴蝶:以蝴蝶和珞樱为代表,对搜索词的词长存在限制,拥有用户自定义Javascript以及自定义css。
  • 蚂蚁:虽然蚂蚁因为一些原因已经停止运营,但是模板并没有消失2333。目前仍有很多新站使用蚂蚁的模板进行建站,如高清街以及美盒子(都是小站)。我个人不是很喜欢蚂蚁的模板,它将一个种子的所有信息使用两个tr加一堆rowspan进行合并展示,在我看来其实增加后期维护的困难程度,尤其是在没有模板引擎的NP构架之下。

mayi_tamp.jpg

截图为他人提供的美盒子截图。

  • 蒲公英:蒲公英是魔改NP最为成功的一个站点。在它之前或者之后都有人尝试将Bootstrap与NexusPHP进行结合,虽不能说他们都失败了,但至少NPU成为了一个典型喵喵喵。。其他一些更改,比如rp系统、自动转种系统等都是该站点特点。
  • HDA:良心站点HDArea添加了种子预告系统,后被集市使用。(毕竟这两个站点早期开发是同一个人)

嘛,我影响稍微深刻的就这些站点,以及他们使用的模板。其他还有一些站点,此处就不一一列举了。

而从公开仓库来看,目前站点公开并有在更新代码的有以下:

也确实是寥寥无几~

标签: PT, nexusphp

非特殊说明,本博所有文章均为博主原创。

评论啦~



已有 11 条评论


  1. l
    l

    写的非常好,学习了好多知识。

    回复 2018-10-30 10:13
  2. 咻半仙
    咻半仙

    不知道蚂蚁的模板哪里可以找到或者买到,很想有啊

    回复 2019-01-16 22:05
    1. Rhilip
      Rhilip 博主

      可以找真红酱,如果你能找到的话23333(虽然我有但是不能给。
      但是其对php的支持也仅到5.3,代码质量其实也不高(太多我认为没有必要的实现,或者说高版本PHP有更加方便的实现);但这不能抹杀其对NP这个老破车维护的贡献。

      回复 2019-02-12 22:24
  3. Cjiang
    Cjiang

    https://github.com/nwafu-mta/mtpt 已经访问不了了

    回复 2019-07-06 00:00
    1. Rhilip
      Rhilip 博主

      因为一些原因转成private repo了。你可以考虑下较早的存档: https://github.com/riverstore/mtpt

      回复 2019-07-06 11:16
  4. 许小贱
    许小贱

    大佬您好,我们学校想做一个校园PT,在试了原版和北洋版都有smtp发件不了的问题,想求教一下是哪里的问题。
    另外,听说有一个NexusPHP黑客联盟,里面都是做站技术方面类的,不知道您有群号没有,谢谢回复大佬。
    可以回复在本页面上,我明天再来学习

    回复 2019-12-27 01:56
    1. Rhilip
      Rhilip 博主

      请检查你发件服务及端口。
      同样不好意思,本人也从未听说过该群。

      回复 2019-12-28 20:28
  5. jiezuoxiao
    jiezuoxiao

    其实关于NexusPHP还有段历史,代码源自TBSource,最早是不开源的,要使用得收取所谓的维护费的,至于后来为什么开源呢,因为和某高校合作的时候,某高校学生准守GPL协议把代码给了人人,N站就和他们吵了起来,结果就是在sf上开源了。嗯,最早公开的版本存在已知的邀请漏洞,至于N站管理层有没有利用这个漏洞在其他使用NexusPHP的站点获取注册途径呢,你猜

    回复 2020-07-31 11:02
  6. hui
    hui

    海胆的nexusphp实现了类似羚羊的分组效果,r大知道他们怎么做的吗?这个规模要改源码工作量很大,我有点难以置信是改源码,感觉是嫁接,但又不知道怎么做的

    回复 2021-01-01 08:15
    1. hui
      hui

      也不能说不可能,猫站的游戏板块就是改的分组。难道海胆用的猫站的代码?

      回复 2021-01-01 08:16
  7. jade
    jade

    大佬,现在的UNIT3D怎么说?

    回复 2021-01-21 09:39