프로그래밍
아이프레임이나 프레임셋에서 컨텐츠를 불러오는거 거부해놓은 사이트인지 체크하는거.
제로코인
2017. 11. 22. 20:16
After further research I found the answer on stackoverflow: Detect X-Frame-Options and Catching "Display forbidden by X-Frame-Options”.
PHP Script:
$error=false;
$urlhere=$_GET["url"];
$ch = curl_init();
$options = array(
CURLOPT_URL => $urlhere,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_ENCODING => "",
CURLOPT_AUTOREFERER => true,
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT => 120,
CURLOPT_MAXREDIRS => 10,
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch);
$headers=substr($response, 0, $httpCode['header_size']);
if(strpos($headers, 'X-Frame-Options: deny')>-1||strpos($headers, 'X-Frame-Options: SAMEORIGIN')>-1) {
$error=true;
}
$httpcode= curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo json_encode(array('httpcode'=>$httpcode, 'error'=>$error));
AJAX Request:
$('a').click(function () {
$.getJSON("source/script.php?url="+this, function (data) {
if (data.error) {
$('iframe').hide();
$(".iframe-error").show();
} else {
$(".iframe-error").hide();
$('iframe]').show();
}
});
});
The code to display the iframe and the link to the new tab still needs to be further developed.