file_get_contents 即使 URL 具有欺骗性,也会返回原始内容并显示警报内容

问题描述 投票:0回答:2

假设我们有一个欺骗性的 URL。浏览器会显示一个警告窗口,提示“前面有欺骗性网站”,而 file_get_contents() 返回原始内容,并且无法检测该 URL 是否确实向访问者显示了警告窗口。

如何通过 PHP 获取该警报?我希望获得访问者看到的相同内容。

欺骗性 URL 示例:lumaalchema*com

enter image description here

php file-get-contents
2个回答
2
投票

有许多不同的浏览器,它们各自实施自己的安全措施。如果它们是开源的,那么您可以下载/克隆它们并查找其实现位置。因此,您可以在 PHP 代码中设计相同的逻辑,然后您可以通过浏览器的源代码检查用户请求的文件。

然而,这听起来可能很简单,但事实上,浏览器会随着每个版本的变化而变化,并且用户正在使用多个浏览器,这让事情变得有点复杂。为了找出用户正在使用的浏览器,您可以在 PHP 中使用 get_browser。如果您有模拟检查用户访问的浏览器的欺骗性网站的代码,那么您可以触发它并进行自己的检查。当然,您还需要检查版本,因此这不是很容易管理,因为您偶尔需要提取较新的版本,并可能为不同版本保留此逻辑的多个副本。

当然,您也可以使用 Web 驱动程序,例如 Selenium,例如 How do you run Selenium headless in PHP? 如果这样做可以解决问题。


-1
投票

file_get_contents 只能获取URL的内容,不能获取警告窗口的内容。如果你想获取警告窗口的内容,那么你可以这样做。

  1. 手动将您访问的 URL 存储到数据库中。 2、使用file_get_contents访问URL,去数据库匹配该URL是否有警告数据,如果有,则返回警告数据。
© www.soinside.com 2019 - 2024. All rights reserved.