假设我们有一个欺骗性的 URL。浏览器会显示一个警告窗口,提示“前面有欺骗性网站”,而 file_get_contents() 返回原始内容,并且无法检测该 URL 是否确实向访问者显示了警告窗口。
如何通过 PHP 获取该警报?我希望获得访问者看到的相同内容。
欺骗性 URL 示例:lumaalchema*com
有许多不同的浏览器,它们各自实施自己的安全措施。如果它们是开源的,那么您可以下载/克隆它们并查找其实现位置。因此,您可以在 PHP 代码中设计相同的逻辑,然后您可以通过浏览器的源代码检查用户请求的文件。
然而,这听起来可能很简单,但事实上,浏览器会随着每个版本的变化而变化,并且用户正在使用多个浏览器,这让事情变得有点复杂。为了找出用户正在使用的浏览器,您可以在 PHP 中使用 get_browser。如果您有模拟检查用户访问的浏览器的欺骗性网站的代码,那么您可以触发它并进行自己的检查。当然,您还需要检查版本,因此这不是很容易管理,因为您偶尔需要提取较新的版本,并可能为不同版本保留此逻辑的多个副本。
当然,您也可以使用 Web 驱动程序,例如 Selenium,例如 How do you run Selenium headless in PHP? 如果这样做可以解决问题。
file_get_contents 只能获取URL的内容,不能获取警告窗口的内容。如果你想获取警告窗口的内容,那么你可以这样做。