【问题标题】:Best way to do specific URL blocking in PHP?在 PHP 中进行特定 URL 阻止的最佳方法?
【发布时间】:2017-01-10 03:30:36
【问题描述】:

我必须创建一个页面来检查链接并在它是钓鱼链接时阻止它。

对照黑名单检查 URL 的最佳/最有效方法是什么?

我可以将它存储在 MySQL 或文本文件中(也许在文本文件中使用 JSON 并遍历一组被阻止的链接?)

我在想如果我使用 MySQL,每次必须检查链接时都必须检查数据库,这可能会占用太多资源,但也许我错了。

无论哪种方式对我来说实施起来都不难,但我只是好奇最有效的方式是什么。

【问题讨论】:

  • 投反对票的问题是什么?这些天来,每个人都对问题很现实。
  • 可能的答案太多,或者对于这种格式来说,好的答案太长了。请添加详细信息以缩小答案范围或隔离可以在几段中回答的问题。
  • “我使用 MySQL,它每次都必须检查数据库” - 使用文本文件,您每次也必须将整个文件加载到内存中。跨度>
  • 用非常具体的技术术语定义“网络钓鱼链接”。它在 Google 的恶意软件列表中吗?它是否隐藏在一个或多个 URL 缩短器或重写器后面?您准备好手动整理此列表了吗?这是一个非常非常难以有效解决的问题。最有效的方法是警告人们链接超出您的控制范围,并鼓励他们使用 Chrome 等安全浏览器,并针对此类网站发出警报。

标签: php mysql


【解决方案1】:

如果您在谈论传入的 url,这可能是欺骗或隐藏的。它可以通过 $_SERVER 全局获取。例如:$_SERVER['HTTP_REFERER']

我不会做你的工作,因为它违反了指导方针,尽管看到你的回复提供了更多信息,我可能会受到启发。

要查看某个域的 MySQL 数据库,这些主题可能对您有用:

MYSQL Fulltext search and LIKE

MySQL match() against() - order by relevance and column?

https://dev.mysql.com/doc/refman/5.7/en/pattern-matching.html

让我知道哪一个对你的帮助最大,如果你需要进一步的指导,我可以建议一个可行的方法来做到这一点。

P.S.:考虑性能而不是精确度,因为我同意你的问题太模糊,回复必须太彻底。您还可以遍历 PHP 数组以搜索 URL 黑名单。

此外,这些更高级并且涉及正则表达式,但您可能会感兴趣:

How to validate domain name in PHP?

https://corpocrat.com/2009/02/28/php-how-to-get-domain-hostname-from-url/

问候。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-20
    • 2022-01-16
    相关资源
    最近更新 更多