php - 如何检查 URL 是否可嵌入 PHP 中的 iframe?

标签 php iframe x-frame-options

某些网站不允许通过 iframe 嵌入。它们产生以下错误:

Refused to display 'https://news.ycombinator.com/news' in a frame because it 
set 'X-Frame-Options' to 'DENY'. 

我们的应用程序允许用户提交 URL。我们想在服务器端检查网站是否可以嵌入 iframe 并添加相应的标志。在客户端,我们检查标志,然后嵌入 iframe 或只提供网页的直接链接。

如何检查网站是否支持 iframe?

最佳答案

试试这段代码:

$url = "http://www.google.com/";
$url_headers = get_headers($url);
foreach ($url_headers as $key => $value)
{
    $x_frame_options_deny = strpos(strtolower($url_headers[$key]), strtolower('X-Frame-Options: DENY'));
    $x_frame_options_sameorigin = strpos(strtolower($url_headers[$key]), strtolower('X-Frame-Options: SAMEORIGIN'));
    $x_frame_options_allow_from = strpos(strtolower($url_headers[$key]), strtolower('X-Frame-Options: ALLOW-FROM'));
    if ($x_frame_options_deny !== false || $x_frame_options_sameorigin !== false || $x_frame_options_allow_from !== false)
    {
        echo 'url prevent iframe!';
    }
}

关于php - 如何检查 URL 是否可嵌入 PHP 中的 iframe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18702921/

相关文章:

php - 如何使用 RewriteRule 来执行不可见的搜索查询?

php - Codeigniter 分页 - 我很难过

javascript - 淡化域之间的页面转换

asp.net-mvc - 尽管在 Web.config 中设置了 X-Frame 选项,但在 global.asax 中抑制防伪 X-Frame 选项 header 会削弱安全性?

Django XFrameOptionsMiddleware (X-Frame-Options) - 通过客户端 IP 允许 iframe

php - Bootstrap 3 Typeahead Ajax 搜索使用 php mysql 函数

html - google iframe '导致底部有额外的填充

html - 将大参数传递给 iframe

javascript - 父窗口中的 Iframe 的 onSubmit 可以吗?

php - Laravel 拒绝在 iFrame 中显示为 "' X-Frame-Options' to 'SAMEORIGIN'。”