`
waiting
  • 浏览: 234783 次
  • 性别: Icon_minigender_1
  • 来自: cq
社区版块
存档分类
最新评论

SPS Discuz7.2 超强给力修改版

阅读更多

SPS Discuz7.2 超强给力修改版

 

 

 

Discuz目前最新版为DZ X2,但功能繁多程序臃肿,如果仅是搭建一个论坛那么使用DZ7.2是较好的选择。
故基于康盛官方UCenter1.6和Discuz! 7.2最新版本程序进行修改有此SPS版。


原版本使用MySQL MyISAM引擎,在数据量达到一定规模后当网站流量较大,高读写并发时数据库将会出现严重锁表导致数据库性能急剧下降于是网站访问变慢;原版PHP程序代码中不少缺陷尚未得到官方修正及优化(估计也不会新补丁了)使得服务器不能发挥应有性能。此修改版在安全(Security), 性能(Performance),稳定(Stability)这三方面相对于原版有极大提升,故称SPS版本。

Security
原版对账户口令处理方式为md5散列,如果网站被拖库虽然不会有这次CSDN及各大网站泄漏用户明文口令那样严重,但在运算性能日益增强的处理器前md5口令已经变得相当脆弱。如果你的口令长度只有小写字母再加上数字,假设口令的长度是6位,那么在目前一台比较新一点的PC机上,穷举所有的口令只需要40秒钟。而几乎有90%以上的用户只用小写字母和数字来组织其口令。对于6位长度的密码只需要最多40秒就可以破解了。即便DZ有使用每用户salt机制,但现在已经出现专门针对DZ口令处理方式(md5(md5(passwd)+salt)的破解网站。并且原版程序在修改口令时表单提交的当前口令及新口令都是通过明文方式提交,如果存在网络嗅探那么就毫无安全可言。

SPS版登录验证时采用SHA256散列经过SITE_SALT掺盐处理后的口令,即使网站未使用TLS/SSH协议保护且存在网络嗅探也具有相当的安全性;入库口令采用bcrypt(blowfish)处理,无论是跑字典还是制作彩虹表的成本都相当大。并且可以根据(自己网站的或者破解者的)服务器运算性能设定 work factor(BC_FACTOR)值让该算法运算开销在安全性和性能之间达到一个平衡————如果日后处理器运算性能大幅度提高,那么提高 work factor 值即可让运算速度降下来。对口令的SHA256+bcrypt结合处理方式极大提高了网站账户安全水平。

 


Performance
原版使用MyISAM引擎,在大数据量高并发读写下表锁将会使数据库性能严重恶化甚至发生坏表。SPS版把数据库更换成PostgreSQL(以下简称pgsql)。pgsql同样是开源数据库,并且BSD版权协议比MySQL的双重授权更加开放,技术先进性能高超,远非MySQL可以匹敌。技术比较可参考此贴 【PostgreSQL与MySQL比较 】http://bbs.chinaunix.net/thread-1688208-1-1.html


在pgsql强悍支持下SPS版实现了分区表、事务、部分索引,显著提升数据库运行性能,结合小巧高效的SCWS中文分词程序实现了主题标题FTS全文搜索功能(考虑到数据库容量帖子内容全文搜索暂未实现,故切勿开启论坛的内容全文搜索,可使用首页的google站内全文搜索功能替代)。通过分区表可以分散各版块压力从而极大提高性能(在新建版块时全自动创建post分区表),这比Discuz最新的X系列版本中的表分区更加有效,DZ X2采用的表分区是对数据表纵切方式分离,可以有效减小主表体积,对于MySQL这样索引组织表而言有性能提升,但划分出的表需要原表中同样的PK字段,得失相较性能还是有提升。而对于pgsql的堆表来说这种划分方式对性能提升不明显,凭借于pgsql特色的TOAST(The Oversized-Attribute Storage Technique)线外存储技术即自动实现了X2的分区表功能————默认情况下大于2KB尺寸的支持线外字段类型值将会被自动压缩然后通过OID关联保存到表外。就是借助TOAST技术SPS版的posts表性能已经不逊于经过分表的DZ X2的posts表(DZ7.2原版不支持表分区这个功能)。

pgsql给力的部分索引功能让你可以通过监控网站运行时SQL执行压力有针对性地创建特定索引来实现特定查询(比如版块精华帖)性能的大幅度提升。
如果网站PHP跑在PHP-FPM模式(比如nginx+php-fpm),那么SPS版在fastcgi_finish_request()技术上实现的队列机制可以在执行无需结果的写库操作(比如更新登录信息或者更新论坛信息帖子计数信息等)之前即关闭与http server(nginx)连接。虽然对解决502错误无用但可以减轻http server负担且提升用户浏览体验。

移除与论坛无关的信息采集发送代码,删除新版本自动升级通知的接口避免论坛受到此接口漏洞的攻击。

 

Stability
原版的MyISAM引擎不支持事务,在做管理操作时如果执行时间过长超时中途出错则会出现不可预料结果。在康盛DZ官方论坛bug反应版块有站长曾遇到这种情况:批量删除滥发广告的账户,执行操作后失去响应,结果把大量非选中的正常用户也删除了!还有论坛的管理员账户莫名“自动”降级变成普通用户。通过pgsql的事务支持,SPS版PHP代码相对原版有大幅度修改,重要的论坛管理操作皆采用事务来保证执行结果的稳定性及可预期性。如果采用pgsql的PITR功能则可进行论坛数据热备,实现可以回滚论坛数据到任意指定时间点这个超级需求~


SPS版本除了电子商务的支付部分似乎存在问题其他功能经过测试运行正常。

程序安装请参见 INSTALL.TXT 文件,其中有重要参数的设定说明!

为啥成为超强给力版呢? Super Power Supply是也 :)

本SPS修改版处于技术研究,如果你准备安装使用该SPS修改版则请先参阅康盛官方网站Discuz相关版权协议。
若有指教或技术探讨请访问
http://waiting.iteye.com/blog/1343663
或QQ:1661926154

    -- waiting    2012/01/28

 

ADD: PHP需要PDO及pdo postgresql

 

 

SHA1:

6306bb1837d6ebd3f70c5c72f35521854b7b10aa *bin\init_site_rights.sh
dea031544e6d24cf3b35c42a1f43a3867e372297 *bin\scws-1.1.9.tar.bz2
942a2ab19f5f22727af5eb28bcf97f110d3d0981 *bin\scws-dict-chs-utf8.tar.bz2
29f4990d60044f0499e442a7456cb855c44491fd *bin\set_config_rights.sh
71fb25160e68c3a62576acad2151337dda7dd788 *bin\www.tar.bz2
915ceaf76d319a6af4eeff0084e75aef63d36322 *doc\CHANGE.TXT
a4c471798130b184a5464de8a93ba80c1ef19ecb *doc\INSTALL.TXT
611193b3f7cdea5d4f2b71fccf08cc19efb3c16a *doc\README.TXT
f6380a0975711255832d11bae943336f4a9a86fb *sql\dz-20120301.sql.gz
4db98f38bc613767881e70a695a1194d25f6f2bb *sql\uc-20120301.sql.gz

 

 

 

------------------------------update 2012.02.09
数据库结构有变化,所以必须以新版本的sql创建数据库表
+    创建版块时自动为此版块创建关联post分区表,可极大地提高数据库读写性能。删除版块时自动删除关键post分区表
+    使用tid散列方式分割附件分区表,可大幅度提高数据库读写性能
+    搜索字符串支持过滤符号(+-! AND OR), 高级搜索中的“作者”关键字也同步更新。
    比如可以“postgresql -mysql” 或者 “postgresql !mysql”来排除mysql关键字,
    以“postgresql +mysql” 或者 “postgresl AND mysql”来实现约束.
    注意如果输入“php -"java ok"”的效果等同于“php -php +ok”,可以这样输入“php -java -ok”来实现预期

*    管理中心回收站主题列表日期改为"Y-m-d H:i:s"显示详细时间

-    管理中心添加用户后用户名未同步更新到FTS表中
-    搜索大小写敏感
-    管理中心回收站主题列表操作人栏结果有时不能正确显示操作人及操作时间(SQL bug)
-    管理中心回收站主题搜索SQL bug

 

------------------------------update 2012.02.14
-    posts索引创建错误
-    插件“我的马甲”工作不正常
-    插件“楼层奖惩”工作不正常
*    创始人口令修改条件放宽。只要为空即可修改
?    manyou功能仍不正常

SHA1 d62d33fc21b18050f00cfab09a204a704528d8f7 *patch1.7z

分享到:
评论
1 楼 huamutongyou 2013-11-21  
iteye下载超级繁琐,这样的网站居然也能存活。

相关推荐

    库卡机器人sps解析

    ### 库卡机器人SPS文件解析 #### 一、SPS文件概述 SPS文件是库卡(KUKA)机器人控制系统中的一个关键组成部分,主要用于控制机器人的自动化流程和逻辑处理。通过对SPS文件的深入理解,可以更好地进行库卡机器人的编程...

    Intel SPS 4.0.4 .139.0_FIT

    标题 "Intel SPS 4.0.4 .139.0_FIT" 提到的是Intel System Programming Suite (SPS) 的一个特定版本,4.0.4 .139.0,它是一个用于系统固件开发和配置的工具集。Intel SPS支持构建完整的启动镜像,这对于计算机硬件...

    h264sps解析获取分辨率

    SPS(Sequence Parameter Set)是H.264编码流中的一个重要组成部分,存储了编码序列的全局信息,包括视频的分辨率。解析H.264 SPS是理解视频流特性,特别是获取视频分辨率的关键步骤。 H.264编码流程中,SPS通常...

    KUKA机器人后台控制程序(SPS)介绍.docx

    KUKA机器人后台控制程序(SPS)是其操作系统的核心组成部分,主要负责机器人的后台逻辑控制和自动化任务的执行。SPS,全称是Sequential Program System,它是一种基于PLC(Programmable Logic Controller)原理的...

    H264 sps pps解析

    SPS(Sequence Parameter Set)和PPS(Picture Parameter Set)是H264编码中不可或缺的部分,它们包含了编码视频序列的全局信息。 SPS(Sequence Parameter Set): 1. **定义序列级别**:包括图像宽度、高度、帧率...

    H264的sps和pps涵义解析

    H.264 编码算法中 SPS 和 PPS 的涵义解析 H.264 编码算法中的序列参数集(Sequence Parameter Set,SPS)和图像参数集(Picture Parameter Set,PPS)是两个非常重要的概念,它们都是 H.264 编码算法中用于描述视频...

    H264中SPS与PPS的获取

    在H264编码标准中,SPS(Sequence Parameter Set)和PPS(Picture Parameter Set)是两个至关重要的参数集,它们定义了视频序列的基本编码参数和图像编码参数。理解并正确获取这些参数对于解码、播放或者处理H264码...

    sps.rar_NSPSApp_sps_地震

    随着地震勘探采集技术的不断发展和SPS标准数据格式的引入,如何既有效地监控野外采集质量,又为原始资料的快速处理提供方便,已经成为人们关注的问题。NSPSApp V5.0软件能够方便快捷地实现标准的SPS数据格式文件,...

    h264 sps帧解析出宽高等信息(c c++).rar

    SPS(Sequence Parameter Set)帧是H264编码中至关重要的组成部分,它包含了视频序列的全局信息,如画面尺寸、像素格式、时间信息等。本资源提供了解析H264 SPS帧以获取宽高信息的C和C++实现,对于理解H264编码原理...

    emc dmx sps更换

    备用电源系统(SPS)是维持设备运行的关键组件,它不仅包含了电池功能,还负责在主电源失效时提供不间断电源,确保数据安全。在本文中,我们将深入探讨如何更换DMX系统柜中的SPS。 首先,更换SPS前需要准备必要的...

    H264解析SPS获取分辨率,profile,level

    本文将深入探讨如何使用C语言解析H264的SPS(Sequence Parameter Set)信息,以获取视频的分辨率、profile和level等关键参数。 SPS是H264编码流中的一个重要组成部分,它包含了关于整个序列的全局信息,如图像尺寸...

    h264 sps, pps解析代码

    在本文中,我们将深入探讨H264视频编码标准中的SPS(Sequence Parameter Set)和PPS(Picture Parameter Set)概念,并提供一个基于C语言在Linux环境下实现的解析代码的相关介绍。H264是一种高效的视频编码标准,...

    从H264编码的sps解析出来图像参数

    其中,SPS(Sequence Parameter Set)是描述视频序列全局信息的重要NAL单元,包括了图像的宽、高、级别等关键参数。本篇将详细解释如何从H264编码的SPS NAL单元中解析出这些参数。 首先,我们需要理解H264码流的...

    KUKA 机器人SPS.SUB程序解析.pdf,这是一份不错的文件

    KUKA 机器人 SPS.SUB 程序解析.pdf 文件分析 本文档为 KUKA 机器人 SPS.SUB 程序解析.pdf 文件的详细分析,涵盖了 SPS.SUB 程序的结构、变量定义、枚举类型、数据发送机制、Interrupt 中断函数声明、MSG_T 信息显示...

    解析h264 sps获取分辨率

    本文将深入探讨如何从H264的Sequence Parameter Set (SPS)中解析出视频的分辨率,这对于理解和处理H264编码的视频流至关重要。 H264编码的数据结构由多个NAL单元(Network Abstraction Layer units)组成,每个NAL...

    testh265sps.rar

    标题中的“testh265sps.rar”表明这是一个关于H.265视频编码标准的压缩包,可能包含解析SPS(Sequence Parameter Set)的数据和相关代码。H.265,也称为High Efficiency Video Coding (HEVC),是目前广泛应用的视频...

    h264 SPS PPS 解析,C代码实现,已验证

    在H.264编码中,SPS(Sequence Parameter Set)和PPS(Picture Parameter Set)是两个至关重要的组成部分,它们包含了编码序列的全局参数和图像的参数,对解码过程起着核心作用。本篇将详细介绍这两个概念以及如何...

    SPS入门教程.pdf

    Stoner Pipeline Simulator (SPS/Simulator) (SPS/ 仿真器) 是一 种先进 的 瞬态流体 仿真 应用 程 序 , 它分 为 气体和液体 两个 模 块 , 分别用 于模拟 管网 中 天然气或 ( 批量 ) 液体 的 动态流动

    spspps头.zip

    标题 "spspps头.zip" 暗示了这是一个与视频编码相关的压缩文件,特别是针对H.264编码标准。H.264,也称为AVC(Advanced Video Coding),是目前广泛应用的一种高效视频压缩格式,广泛用于高清视频、网络流媒体、DVD...

Global site tag (gtag.js) - Google Analytics