【问题标题】:Stop bot from using sessions阻止机器人使用会话
【发布时间】:2012-08-13 18:29:24
【问题描述】:

我正在开发一个网站并使用 Heroku 进行托管。我在他们的开发计划中,允许我使用他们的免费数据库,但最多只能使用 10,000 行。在两天没有接触该站点后,我震惊地看到 Heroku 的电子邮件警报说我的数据库中已达到 7,400 行。经过一些研究,我意识到搜索机器人正在创建会话。有没有办法阻止这种情况?我已经尝试过这篇文章中的解决方案,但它似乎不起作用:

How to disable Rails sessions for web crawlers?

我正在使用 Rails 3.2.2。

【问题讨论】:

    标签: ruby-on-rails-3 search bots


    【解决方案1】:

    正如在这个问题 (Setting session timeout in Rails 3) 中看到的,您可以实现会话的自动到期,并在会话到期时删除数据库行。如果您保持会话到期时间较短并不断删除数据库行,我想您不会达到您的 Heroku 限制。

    【讨论】:

    • 一定有比这更好的答案,有什么想法吗?
    【解决方案2】:

    为什么要将会话存储在数据库中?我建议您查找正在执行此操作的服务器/站点设置并将其禁用。在大多数情况下,将会话存储在数据库中是没有意义的,绝对不会在开发站点上。

    【讨论】:

    • 感谢您的建议,但我选择 db session store 是有原因的。你还能回答我的问题吗?
    • 如果您在帖子中提到的解决方案(链接到之前的帖子)不起作用,那么您应该检查您的案例中机器人传递的用户代理字符串并相应地调整正则表达式。并查看“Kulbir Saini”选项。
    • 否决,因为数据库中的会话是处理安全性的更安全的方式。请参阅有关会话存储的 Rails 指南:guides.rubyonrails.org/security.html#session-storage
    • @AminAriana 我认为您没有完全阅读guides.rubyonrails.org/security.html#session-guidelines。它不建议将会话存储在数据库中,而是将敏感信息存储在数据库而不是会话中。
    猜你喜欢
    • 2020-02-09
    • 1970-01-01
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    相关资源
    最近更新 更多