全新安装
本地安装,安装包资源参考:https://sv666.lanzoui.com/iIbH3njurod。安装过程比较简单,权限要777:sudo chmod -R 777 路径
一直在检查新版本的连接优化
因为苹果CMS已经关站了,但后台进去后一直在尝试连接官网进行检测新版本,先不让它连接。
application/admin/controller/Index.php:91 找到
1 | echo $html.'<span style="display:none"><iframe src="//www.maccms.com/update/update10.htm?v='.$version['code'].'" width="0" height="0"></iframe>'. '<script src="//www.maccms.com/update/v10/?c=check&v='.$version['code'].'&p='.PHP_VERSION.'&t='.time().'"></script></span>'; |
替换成
1 | echo $html; |
默认采集联盟资源库失效问题
因为官网打不开了,自然就失效了,在网上找到一个资源库并替换:application/admin/view/collect/union.html:17
1 2 3 | 注释掉默认的这个 <!--<script src="//www.maccms.com/union/xmlutf_2014.js" charset="utf-8"></script>-->添加替代资源库 <script src="//www.zidongcaiji.com/caiji/api.js" charset="utf-8"></script> |
其实看了一下资源库的代码,蛮简单的,后边自己制作一个更优秀的版本替换,先用这个测试一下。
简单的测试使用之后发现这个资源库不稳定,并且采集的时候不能采VIP资源站,因为失效率太大了,很多都是404。
删除无用连接
application/admin/view/index/index.html:35
1 2 | <li class="layui-nav-item"><a href="http://www.maccms.com/" target="_blank">官网</a></li> <li class="layui-nav-item"><a href="http://bbs.maccms.com/" target="_blank">论坛</a></li> |
删除,因为官网已经打不开了。
解密player.js文件
苹果CMS加密了最重要的播放器载入player.js,而且一直在打开播放页的时候 player.js 会载入一个js文件执行,我们替换掉就行。官方这么做是非常不道德的。https://www.uedbox.com/post/56036/
解密文件
1 2 3 4 5 | # 主题加密 template/vfed/asset/fed/create.php //已解,暂不提供 template/vfed/asset/js/global.js //已解96%,手动换变量换到烦躁,暂不提供 # CMS加密 static/js/player.js //已解 |
其中主题(苹果CMSv10大橙vfed3.1.5完美破解)加密解密工作完全是苦力活,耗费我几个小时。但基本都解开了。
伪静态设置,去掉index.php
后台->系统->URL地址配置:路由状态(开启)伪静态状态(开启)
搜索地址vodsearch/-------------.html?wd=静态优化
路由规则
1 2 3 4 | vodsearch/<wd?>-<actor?>-<area?>-<by?>-<class?>-<director?>-<lang?>-<letter?>-<level?>-<order?>-<page?>-<state?>-<tag?>-<year?> => vod/search
改成 vodsearch/ => vod/search |
建议路由规则还是默认吧,没必要自己改动,虽然会有一长串的----出现。
Nginx规则
1 2 3 4 5 6 7 8 9 | location / { if (!-e $request_filename) { rewrite ^/index.php(.*)$ /index.php?s=$1 last; rewrite ^/api.php(.*)$ /api.php?s=$1 last; rewrite ^/admin.php(.*)$ /admin.php?s=$1 last; rewrite ^(.*)$ /index.php?s=$1 last; break; } } |
修改后台地址
开源CMS都必须要改的东西,不然挂个打码机破你就是时间问题,上边的改一下
1 | rewrite ^/新后台文件名.php(.*)$ /新后台文件名.php?s=$1 last; |
根目录下的admin.php是默认后台地址,把admin.php改成你的新地址名。同时把nginx的后台规则改上如上,然后重启nginx。
HTTPS站点
这里要补充一下,因为视频都是用的外边播放,不管你是像VIP资源一样连接URL还是M3U8资源
错误
1 | Mixed Content: The page at 'https://www.site.com' was loaded over HTTPS, but requested an insecure image ‘http://site.com/190283de.m3u8’. This content should also be served over HTTPS. |
提示说你引入的连接是非HTTPS加密连接,而你的站点又是HTTPS连接,这引发了安全问题,所以会限制资源加载。这样视频就没法播放了。
解决它
这里提供两种解决方法
前端解决:引入了一个meta
1 | <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" /> |
这种方法比较灵敏,对不懂代码或没有更多权限和能力去后端解决的人来说。如果你的主题支持操作head的话,比如vfed,直接在设置中添加这段代码即可,错误消失,问题解决。
后端解:决NGINX
在相应的conf文件中添加
1 | add_header Content-Security-Policy "upgrade-insecure-requests"; |
这段代码即可,错误消失问题解决。更多扩展可看《Nginx的跨域Content Security Policy通行设置》
程序BUG修复
苹果CMS V10的系统BUG还是蛮多的,因为只是安装测试,并非自己实际使用,所以没去一一修复,举例说明,权限配置有BUG:
BUG体现在权限检测太弱,轻易就越权了。还有就是权限配置不完善,如果是多帐号多权限使用会造成一些使用限制。
还有核心的采集BUG有很大的优化空间。
权限与安全
程序上
程序好像全部都要777权限,这样很不安全。因为架构的问题,采集了PHP配置文件而不是存取数据,这样即会造成安全问题也会造成权限滥用丢shell。
追了程序,发现两处getshell漏洞,已经修复,此处福利满满。
nginx防跨站
1 2 3 | location ~ \.php$ { fastcgi_param PHP_VALUE "open_basedir=$document_root:/tmp/:/proc/"; } |
HTTPS安全
这里先是全站HTTPS,然后自动追加HTTPS,再配置nginx,过程略复杂,下次补充。
功能扩展
采集功能相对弱,如果要做一个优质的片源站,必须结合豆瓣和imdb的的信息。评分也是假的,这是垃圾站标配。但话又说回来,我也不用要是用肯定处理这个问题。
自动处理图片防盗链问题,去除数据库操作功能。
配置与权限全部修改,现在的操作方式真的太危险了。
自动测试播放线路进行排序,也就是自检体验。
结束
本次过程包含
程序安装
主题安装
主题解密
优化修改
nginx相关
安全相关
若有使用苹果CMS V10的的同学可参考本文进行调试。