空大

如何区分真实用户跟蜘蛛设置访问权限(苹果cms)

做视频站的站长一直以来都很想做一件事,就是能跟虾皮电商网站一样,可以控制游客禁止访问网站,而同时又能够让蜘蛛爬虫顺利访问网站,这个功能是非常需要的功能,可以防止有心人士恶意举报,因为一些敏感信息在中国是相当容易被屏蔽和谐的,中国三大电信商很快的就会将你的域名锁定,把你的域名解析到 127.0.0.1 或者 0.0.0.0,当然有些电信商节点会把你解析到 Facebook、Twitter,但是他们这么做基本上就是禁止中国用户去访问你架设的网站。

那么视频站也会面临这种问题,所以我们应该如何”降低”这种风险? 虽然这个功能还是会有被举报的风险,但是可以让恶意举报的人举报难度提高非常多,这些无聊人士会利用程序自动化举报,甚至有的直接勾串电信业者直接勒索站长付钱才会解禁,我相信这些事情很多人都发生过。

苹果cms是开源的影视系统程序,由于它是开源的,所以维护的人非常少,因此有许多的漏洞或需要改善的空间,那我就针对蜘蛛与真实用户的权限判断来作介绍,到底要如何实现这个功能?

maccms v10 目录底下找到 application/index/controller/Base.php

Base.php 文件里面是一个类(class),它命名为 Base

有一个 function 命名为 __construct()


public function __construct()
{
parent::__construct();
$this->check_site_status();
$this->label_maccms();
$this->check_browser_jump();
$this->label_user();
}

在 function __construct() 里面添加两行代码
$this->SpiderLogin();
$this->assign('user', (isset($GLOBALS['user']) ? $GLOBALS['user'] : null));

然后在 Base 类里面宣告两个 private function,一个函数是用来判断是否为蜘蛛,以及蜘蛛的 User-Agent,而另一个函数就是将这些蜘蛛指派为「默认会员」。

由于 maccms 的会员组的功能并不是很完善,因此只能把蜘蛛配置为默认会员组,额外添加的会员组都是毫无意义的。

测试功能是否有被正确运行,我们可以使用 pagespeed insights 来查看状况,如果你分析完是停在:

亲爱的用户:
您没有权限访问此数据,请升级会员
页面自动 跳转 等待时间: 

那表示没有成功,你就要再次调整代码,直到成功为止。

pagespeed insights 的 User-Agent 字串包含:Chrome-Lighthouse

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《如何区分真实用户跟蜘蛛设置访问权限(苹果cms)》
文章链接:https://www.rank50.com/seo/2775.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

登录

找回密码

注册