curl_exec unsicher? + alternative?

bayliner

New Member
Ich hab ein Board und biete SSL / HTTPS an.

Problem ist das Benutzer Bilder von Non-HTTPS Hosts per Tag einbinden...


Um dies zu lösen habe ich ein script das wie folgt aussieht:


cache.php:

[PHP]
<?php

function curlHeaderCallback($query, $header){
global $mime;
if(stripos($header, "content-type")!==false){
header(trim($header));
}
return strlen($header);
}

$image = $_GET['img'];

$query = curl_init($image);
curl_setopt($query, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9");
curl_setopt($query, CURLOPT_CONNECTTIMEOUT ,0);
curl_setopt($query, CURLOPT_TIMEOUT, 10);
curl_setopt($query, CURLOPT_HEADERFUNCTION, 'curlHeaderCallback');
curl_setopt($query, CURLOPT_RETURNTRANSFER, 1);
$ret = curl_exec($query);
echo $ret;
[/PHP]


Nun das lässt sich damit gut lösen :) Bilder die eingebunden werden sehen wie folgt aus:


[url]https://www.domain.net/board/cache.php?img=http%3A%2F%2Fimg10.imageshack.us%2Fimg10%2F6671%2F63707801.jpg[/url]



Allerdings zeigt mir Acunetix an das dieses Script sehr Unsicher ist und leicht Angreifbar für Hacker... Wegen dem curl_exec!!!




Ist dies wirklich so oder gibt es eine Alternative?
 
Wegen dem curl_exec!!!
Nein, weil du Proxy für andere Medien spielst und unter anderem potentiell lokale Dateien damit auslieferst oder cross-site injection Angriffstor bietest.

Hier lesen zum Thema: http://stackoverflow.com/questions/3011222/dealing-with-http-content-in-https-pages
Zitat:
Simply: DO NOT DO IT. Http Content within a HTTPS page is inherently insecure. Point. This is why IE shows a warning. Getting rid of the warning is a stupid hogwash approach.
 
Welche möglichkeiten habe ich da?


Und wenn ich Alternativ die cache so gestalte das die die Bilder auf den server holt in ein "cache" folder?
 
Wenn du sicherstellst dass es _nur_ Bilder sind und kein Schadcode mitgeliefert wird. Allerdings musst du beachten dass du damit vermutlich Content Provider wirst - und nicht bei allen Bilder wirst du eine Auslieferungserlaubnis haben.
 
Ohje :(

Ich will doch nur ein Gesamtes vbulletin Board per HTTPS erreichbar machen ... Bzw. das ist es ja schon aber diejenigen die Bilder per IMG einbinden haben eben Non-HTTPS Hosts. Das killt mir mein HTTPS!!!

Das Speichern in ein Cache folder ist aber für mich auch nur per curl_exec zu erledigen! oder gibt es da eine Alternative Lösung?


Was wäre die Ultimative Lösung für mein Problem?
 
Last edited by a moderator:
Ohje :(

Ich will doch nur ein Gesamtes vbulletin Board per HTTPS erreichbar machen ... Bzw. das ist es ja schon aber diejenigen die Bilder per IMG einbinden haben eben Non-HTTPS Hosts. Das killt mir mein HTTPS!!!
Vielleicht kannst du deine Board-Member ja auch davon überzeugen, die Bilder bei einem externen Hoster hochzuladen, der auch https anbietet (zb. https://www.youpic.info/ )
 
Last edited by a moderator:
Was wäre die Ultimative Lösung für mein Problem?
Das Einbinden externer Ressourcen zu verbieten/verhindern und die User dazu zwingen, die Uploadfunktion des Boards zu nutzen.
Alternativ halt nur Links zu externen Ressourcen zulassen, dann muss man halt klicken...
 
Die Lösung steht in
 
Back
Top