Ik probeer het mogelijk te maken dat een website die zich elders bevindt bepaalde gegevens uit mijn database kan ophalen, tot nu toe zonder het gewenste resultaat want de website kan geen verbinding maken ( Can't connect to MySQL server)

Dit is wat ik heb gedaan:
1.
 
 mysql> GRANT SELECT ON mijndatabase.mijntabel TO nieuwegebruiker@’ipadres-van-externe-website’ IDENTIFIED BY ‘wachtwoord’; 


2. open port 3306 mysql


sudo iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d ipadresexternewebsite --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp -s ipexterneadreswebsite --sport 3306 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT


config van *.php pagina op de externe website die contact gaat maken met mijn server

$host = "ipadres van mijn server";
$user ="nieuwegebruiker";
$passwd = "wachtwoord"';
$db = "mijndatabase";


Vergeet ik iets of wat doe ik verkeerd?
Hmmm ... oké ...

Dan neem ik aan dat je server settings niet per ongeluk dusdanig zijn ingesteld dat ze image-hijacking tegengaan?

Marina janssen op 31/01/2017 23:45:22

De site waaraan ik de images onttrek heeft basic auth. Het rare is: de rest van de pagina laadt wel (de inhoud van txtfiles met fopen op de curlpagina zie je wel, de databaseinhoud ook) alleen de images uit mn loop dus niet. Daarvan zie je alleen de alttekst en dan volgt het inlogscherm van de website (waar de images staan).
[…]

    print $result;


Als je afbeeldingen zo rechtstreeks print, mis je hoogstwaarschijnlijk wat responsheaders, bijvoorbeeld:

<?php
header('Content-Type: image/jpeg');
?>

Verder vermoed ik dat je cURL nog op CURLOPT_BINARYTRANSFER moet zetten.
Ben van Velzen op 29/01/2017 00:10:38

Het gaat om de resources die je laadt. Wanneer je over https laadt moeten al je resources ook https zijn.

Stel onderstaand bestand staat op http://anderewebsite.nl
 $curl = curl_init();
  curl_setopt($curl, CURLOPT_USERPWD, "user:password");
  curl_setopt ($curl, CURLOPT_URL, "https://mijnwebsite.nl/curl.php");
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
	//curl_exec ($curl);
    $result = curl_exec ($curl);
	//echo curl_error($curl);
    curl_close ($curl);
    print $result;


en in curl.php op https://mijnwebsite.nl staat dit:

	echo '<a href="'."http://anderewebsite.nl/".$row['Naam'].".html".'">
            <img src="'."img/".$row['Naam'].".jpg".'"  title="'.$row['Naam'].'" ></a>';

Hoe verloopt het laden van "img/".$row['Naam'].".jpg" als het plaatje staat op anderewebsite.nl? Ik vraag dit omdat ik geen uitroepteken krijg dat dit onveilig is.
Klopt, want de website die daadwerkelijk gegevens laat zien is http, geen https. Wat je onder water doet met curl is niet relevant, daar ziet de browser niets van.

Reageren