首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由机器人垃圾处理的CodeIgniter会话

由机器人垃圾处理的CodeIgniter会话
EN

Stack Overflow用户
提问于 2013-11-19 17:13:33
回答 2查看 2.6K关注 0票数 4

我有一个网站,每天大约有2000名访问者,而且这个网站上有各种各样的搜索引擎机器人。我试着将会话结束时间缩短到20分钟,但我还是得到了大量的mysql_slow_queries。因此,我研究了这篇文章,Google crawler, cron and codeigniter sessions,完全忽略了会话表中的机器人,但是他们所做的是忽略IPs,但是当我分析数据库时,我看到同一个机器人使用不同的IPs。我注意到机器人每次都使用相同的用户代理,所以忽略用户代理是安全的吗?有什么必要的步骤来避免缓慢的查询和忽略机器人呢?

一些缓慢的查询

代码语言:javascript
复制
INSERT INTO `ci_sessions` (`session_id`, `ip_address`, `user_agent`, `last_activity`, `user_data`) VALUES ('619bfd8ef4171480645feb17a15323ee', '219.92.135.144', 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15', 1384875135, '')

INSERT INTO `ci_sessions` (`session_id`, `ip_address`, `user_agent`, `last_activity`, `user_data`) VALUES ('fa48b5168b8e84d90dc9b87ce65dfc89', '66.249.74.112', 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)', 1384875522, '')
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-19 17:23:20

user_agent.php中编辑/config,并添加您在会话中看到的机器人,将它们添加到bot部分可以消除日志记录中的会话。

代码语言:javascript
复制
// There are hundreds of bots but these are the most common.
$robots = array(
    'googlebot'     => 'Googlebot',
    'msnbot'        => 'MSNBot',
    'baiduspider'   => 'Baiduspider',
    'bingbot'       => 'Bing',
    'slurp'         => 'Inktomi Slurp',
    'yahoo'         => 'Yahoo',
    'askjeeves'     => 'AskJeeves',
    'fastcrawler'   => 'FastCrawler',
    'infoseek'      => 'InfoSeek Robot 1.0',
    'lycos'         => 'Lycos',
    'yandex'        => 'YandexBot'
);

你可以减少#的机器人,但不会消除他们。此用户代理进程可用于创建MY_session.php,然后排除与机器人匹配的代理的会话创建。

编辑:

我在github上创建了这个程序,并在这里记录了如下:

http://blog.biernacki.ca/2014/01/codeigniter-keeping-bots-out-of-your-sessions-table-or-how-i-cleaned-up-my-sessions/

尽情享受

票数 9
EN

Stack Overflow用户

发布于 2013-11-19 17:16:11

如果您想完全阻止这些机器人,可以尝试使用robots.txt吗?如果您只想忽略正在创建的会话,那么检查用户代理是否有"GoogleBot“这样的字符串可能是一个很好的解决方案。但我认为,需要扩展Session类才能做到这一点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20077751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档