Yabancı Kaynaktan Sebeplenen Güvenli Değil Sorunu Çözümü

Merhaba arkadaşlar SSL serfitikası olduğu halde güvenli değil sorunu olanlar bilir eğer kullanıcılara url girdiriyor ise platform kullanıcılar SSL serfitikası olmayan sitelerin linklerini girdiği zaman o link’de https güvenli görünmeyecektir.

Bunu genellikle forumlar tanıtım siteleri kullanıyor neden bahsediyorum şu şekil’de örnek ile açıklıyorum. Resmin kaynağı imagevisit olsun.

Resim Kaynağı : https://www.imagevisit.com/images/2017/08/28/bucurcin.jpg

benim paylaşacağım proxy’de bu şekil’de olacaktır.

Benim Proxy : https://www.arcface.net/image.php?url=https://www.imagevisit.com/images/2017/08/28/bucurcin.jpg

Kendi kişisel web sitemde kullanıyorum bu özelliği kendim için hazırladığım bu dökümanı yararlı olabileceğini düşündüğüm için paylaşıyorum.

Sistem belli zaten get ile gelen url adresini htmlspecialchars ile temizliyor trime sokarak boşlukları siliyor  daha sonra kontrol yani get_headers ile gelen linke bakıyor kontrol[0] ile get_headers’da dizi halinde değer proxy bilgileri arasında ilk olan http 1.1 200 ok dönüyor ise böyle bir dosya var yok ise else dönüyor else’de de zaten hatalı resim img dönüyor mantığı basit yani bu size şunu sunuyor normalde resim linkini böyle girersiniz. 

<img src="https://www.imagevisit.com/images/2017/08/28/bucurcin.jpg">

ama resimi çektiğiniz yer eğer ssl serfitikalı değil ise size https sorun çıkartacaktır. bu yüzden böyle bir proxy yapar iseniz

<img src="https://www.arcface.net/image.php?url=https%3A%2F%2Fwww.imagevisit.com%2Fimages%2F2017%2F08%2F28%2Fbucurcin.jpg">

Yazdığınız zaman resimi sizin siteniz’den çeker gibi çekecektir. Buda zaten siteniz https olduğu için https sorun vermeyecektir.

<?php

    $url = ""; $link = htmlspecialchars(trim($_GET['url'])); $kontrol = get_headers($link);

    if($kontrol[0] == 'HTTP/1.1 200 OK'){

        $url = $link;

    }else{

        $url = htmlspecialchars(trim('https://www.arcface.net/upload/dosya/default-thumb_159b13c4ed780a.jpg'));

    }

    $imginfo = getimagesize( $url );

    header("Content-type: ".$imginfo['mime']);

    readfile( $url );

?>

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir