我在想…是我能力不足还是DZ逼格太高?

发表于:3 小时前 42
[table][tr][td]最近打算做DZ的后端API,今天阅读Discuz的源代码,发现代码风格简直是醉…而且权限管理也是到处扔着散着,敏感函数简单地在文件开头判断IN_DISCUZ就完了,没有其他的权限检查…更要命的是官方也不出份详细文档,连注释也没有
也就是说好不容易翻出来了内部接口结果发现权限检查直接绕过去了,原本期望会有二次检查的(原先我在别的DZ论坛就遇到过自己发的帖子被移到管理区,自己能用链接看帖子但是分区是进不去的,由此可见DZ的访问控制多么奇葩)
今天废寝忘食看了8个小时代码的楼主表示我第一次认识到自己能力有多渣。实在不行我就直接上SQL了,管你DZ什么业务逻辑
1.gif

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
收藏
送赞
分享

发表回复

评论列表(9)

[table][tr][td]作为一个这么出名的开源论坛系统,您好歹给点注释啊……我第一次见过SQL查询的SELECT和WHERE跨了几十行的……
3 小时前 回复
[table][tr][td]LZ说的太高端
看着你们装B
3 小时前 回复
[table][tr][td]不明觉历。我就默默地看着你们刷逼格
2 小时前 回复
[table][tr][td]

你看一遍数据字典,自己从头规划api就行了。有搞明白他原生而且坑多的接口的功夫自己捋一遍也差不多,遇上关键逻辑没cache之类的这种坑(说的就是首页四格)你就觉得不如自己写个来着方便了。
举个最简单的例子,dz原生通信还是xml,现在筒子们早就用json了。就dz原生手机端做那样,我粗略估计用它的api工作量不小,而且逻辑上会存在大量废逻辑和不符合论坛实际要求的case。(举例就是forum的rss模块,表现极差,经常要update论坛几百个版每个版更20条数据,简直是作死。废的就是像纵横搜索相关帖子推荐,完全被纵横搜索外部控制,毫不犹豫k掉了)
我一般都是过一遍需求和数据字典,然后回过头来再过一遍需求就差不多了。
2 小时前 回复
[table][tr][td]
实际上这是天使客户端要用到的东西


bsnzy于2015-6-22 00:15补充以下内容:
知道了 谢谢。我刚接触discuz所以对安全模型不太了解,但感觉好乱。现在我在研究如何确认“有效权限”,比如已知uid如何判断对某个forum thread post的查看权限。今天挖出了一堆原生接口但是几乎都是在外部做的安全检查。有空的话求科普一下安全模型,我看能自己封装一个不
2 小时前 回复
[table][tr][td]


介绍一下通用的办法,你试试windows grep
http://www.wingrep.com/download.htm
grep /source下*.php 错误信息(例如,用户组拒绝访问),通过lang.php反查调用该提示信息的代码位置
另外大部分包括用户组权限这些在syscache里,具体你dump出来看下就差不多了,这块可以去读取dz原生的syscache,保持跟论坛系统一致无需额外更新
我想,看一下原来逻辑的主流程php里grep所有的showmessage()应该就可以了
ex:




  •         require_once libfile('function/discuzcode');
  •         loadcache(array('bbcodes'));
  •         var_dump($_G['cache']['bbcodes']);

复制代码 MK.II




===
BTW,手机请内置一下secret key访问后端,防抓取
2 小时前 回复
[table][tr][td]突然觉得自己果然好无知
2 小时前 回复
[table][tr][td]我也想学习一下,现在去W3Schools学习中
1 小时前 回复
[table][tr][td]说得这么有道理,好好看看啊
1 小时前 回复