externe website laten lezen uit database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Marina janssen

marina janssen

28/01/2017 23:58:47
Quote Anchor link
Dank. Het gaat om dit stukje (wat staat op mijn https-site):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
echo '<a href="'."http://website.com/".$row['Naam'].".html".'">
            <img src="'."http://website.com/" .$row['Naam'].".jpg".'" ></a>';

Ik kan de image ook vanaf mijn site laden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
echo '<a href="'."http://website.com/".$row['Naam'].".html".'">
            <img src="'."https://mijneigenwebsite.com/" .$row['Naam'].".jpg".'" ></a>';


en dan geeft hij niet aan dat het onveilig is, maar het linkt dan nog steeds naar de http site? Ik snap het niet. Waarom is dit wel veilig?
 
PHP hulp

PHP hulp

05/05/2024 08:40:50
 
Ben van Velzen

Ben van Velzen

29/01/2017 00:10:38
Quote Anchor link
Het gaat om de resources die je laadt. Wanneer je over https laadt moeten al je resources ook https zijn. Links zijn geen resource, en het zou natuurlijk idioot zijn om niet naar http te mogen linken.
 
- Ariën  -
Beheerder

- Ariën -

29/01/2017 00:16:43
Quote Anchor link
En bovendien heeft niet iedere site SSL (poort 443) aangezet. Zo kwam ik recentelijk nog een webshop tegen die geen SSL had. Afbeelding
 
Marina janssen

marina janssen

29/01/2017 01:32:51
Quote Anchor link
Aha, het is dan wellicht nog geen -op maat gemaakte- API geworden maar met mijn -op maat gemaakte- curl ben ik ook heel tevreden.
 
- Ariën  -
Beheerder

- Ariën -

29/01/2017 01:41:09
Quote Anchor link
cURL is niets meer dan een bibliotheek met functies waarvan je de techniek theoretisch ook in browsers vindt. In dit geval gaat het dan puur om de techniek. Zo kan je met cURL bijvoorbeeld cookies plaatsen tijdens een request, controleren of er geen 'redirect infinite loop' is, uit de headers opmaken wat de uiteindelijke locatie van een hostname is of zelfs de header meesturen voor de Auth-realm gegevens van een met een inlog beveiligde pagina.

Deze functie-bibliotheek is ideaal te gebruiken voor het connecten met API's. En dan puur alleen het connecten ermee. Uitlezen doe je voornamelijk met de toegewezen functies voor XML of JSON.
Gewijzigd op 29/01/2017 02:05:43 door - Ariën -
 
Marina janssen

marina janssen

31/01/2017 23:45:22
Quote Anchor link
Ik dacht dat alles werkte maar de images laden niet (ondanks dat ik een wachtwoord meegeef in de curlpagina). Lokaal op xampp werkt het wel en zie ik gewoon de de images, maar live dus niet. Als ik de paginabron bekijk kloppen de url's dus daar ligt het niet aan.
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).
Hoe kan dat nou? Waarom moet je inloggen om de fotos te kunnen zien terwijl de rest wel zichtbaar is?
Dit is mijn curlscript:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
curl_setopt($curl, CURLOPT_USERPWD, "mijninlognaam:mijnwachtwoord");
    curl_setopt ($curl, CURLOPT_URL, "https://mijnwebsite.nl/curlpagina.php");
    
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    
    $result = curl_exec ($curl);
    // echo curl_error($curl);
    curl_close ($curl);
    print $result;
 
Ozzie PHP

Ozzie PHP

01/02/2017 00:50:37
Quote Anchor link
Haal je die plaatjes van je eigen site af?
 
Marina janssen

marina janssen

01/02/2017 01:19:19
Quote Anchor link
Deze output
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
echo '<a href="'."http://website.com/".$row['Naam'].".html".'">
            <img src="'."https://mijneigenwebsite.com/" .$row['Naam'].".jpg".'" ></a>'
wil ik van


https website met plaatjes en basic auth---->naar http website waar de curlpagina het ophaalt.

Als ik
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
."http://website.com/"
weghaal dan ben ik dat inlogscherm kwijt maar heb ik nog steeds geen plaatjes.
 
Ozzie PHP

Ozzie PHP

01/02/2017 01:40:54
Quote Anchor link
Dat was niet helemaal mijn vraag ... de vraag was of het jouw eigen website is waar die plaatjes vandaan komen, of is die website van een derde?
 
Marina janssen

marina janssen

01/02/2017 01:46:46
Quote Anchor link
ja, dat is mijn website
 
Ozzie PHP

Ozzie PHP

01/02/2017 01:53:22
Quote Anchor link
Hmmm ... oké ...

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

Ward van der Put

01/02/2017 07:20:33
Quote Anchor link
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).
[…]
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
    print $result;

Als je afbeeldingen zo rechtstreeks print, mis je hoogstwaarschijnlijk wat responsheaders, bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
header('Content-Type: image/jpeg');
?>

Verder vermoed ik dat je cURL nog op CURLOPT_BINARYTRANSFER moet zetten.
 
Marina janssen

marina janssen

03/02/2017 23:40:02
Quote Anchor link
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
$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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
    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.
Gewijzigd op 03/02/2017 23:40:40 door marina janssen
 
Ben van Velzen

Ben van Velzen

04/02/2017 00:05:21
Quote Anchor link
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.
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.