login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Extern inloggen

Offline jordisjod - 20/05/2008 11:30 (laatste wijziging 21/05/2008 00:37)
Avatar van jordisjodNieuw lid Vraag!

situatie (php/mysql/script):
Ik ben ingelogd op mijn eigen service panel!
Nu wil ik vanuit mijn eigen panel mensen laten doorloggen op externe websites.
Alle inloggegevens zijn bekend in de database.

Nu kan dit dmv een formulier:

  1. <form action="https://www.voorbeeld.nl/index.php?action=login" method="post">
  2. <input type="hidden" name="id" value="123456789">
  3. E-mail Adres:<br><input type="text" id="email" name="email" size="30"><br>
  4. Wachtwoord:<br><input type="password" name="password" size="30"><br>
  5. <input type="submit" name="submit"value="Login">
  6. </form>


Als ik de values vul met de werkelijk gegevens wordt er gelijk ingelogd!
Alleen wil ik de values niet voorvullen (te zien in de bron).

Heeft iemand een idee hoe ik dit kan oplossen. Graag eventueel wat voorbeelden!

titjes schreef:
CODETAGS! Lees ook de forumregels.

5 antwoorden

Gesponsorde links
Offline timmie_loots - 20/05/2008 11:40 (laatste wijziging 20/05/2008 11:47)
Avatar van timmie_loots PHP gevorderde Je kunt een POST-request simuleren en het sessie-id (of eventuele cookies) aan de gebruiker geven. Of dat gaat werken hangt wel af van de beveiliging van de server. Een POST-request simuleren doe je (ongeveer) zo:

  1. <?php
  2.  
  3. define('CRLF', "\r\n");
  4.  
  5. $host = "www.voorbeeld.nl";
  6. $file = "/index.php?action=login";
  7. $postdata = "email=" . urlencode($email) . "&password=" . urlencode($password);
  8.  
  9. $errno = 0;
  10. $errstr = "";
  11.  
  12. $sock = fsockopen($host, 80, $errno, $errstr, 10);
  13.  
  14. if ($sock !== false) {
  15.  
  16. $out = "POST " . $file . " HTTP/1.1" . CRLF;
  17. $out .= "Host: " . $host . CRLF;
  18. $out .= "Content-Type: application/x-www-form-urlencoded" . CRLF;
  19. $out .= "Content-Length: " . strlen($postdata) . CRLF . CRLF;
  20. $out .= $postdata;
  21.  
  22. fwrite($sock, $out);
  23.  
  24. $result = "";
  25.  
  26. while (!feof($sock)) {
  27.  
  28. $result .= fread($sock, 128);
  29.  
  30. }
  31.  
  32. // $result is hier gevult met het resultaat. Door deze te bestuderen
  33. // zou je vrij snel moeten kunnen onderscheiden waar de cookies zitten.
  34. // Als je dan enige kennis van PHP bezit moet het geen probleem zijn
  35. // daar het sessie-id uit te halen. Deze kun je vervolgens in de URI zetten waarnaar je doorlinkt
  36.  
  37. } else {
  38.  
  39. echo "Fout bij het openen van de socket:<br>";
  40. echo "(" . $errno . "): " . $errstr . "<br>";
  41.  
  42. }
  43.  
  44. ?>


Het is overigens wél nodig dat de doelwebsite het ondersteunt om via de URI sessies te veranderen. Bovendien moet er geen controle op ip/browser etc. zijn wat betreft validiteit van de sessie (i.e. geen session hijacking countermeasures).
Offline jordisjod - 20/05/2008 12:22
Avatar van jordisjod Nieuw lid Het gaat om een eigen gemaakt service panel!
Het formulier is een voorbeeld om extern in te loggen. Submit een externe link + values dus oa user/wachtwoord.
Deze values kun je gelijk vullen bij het opbouwen van je formulier maar dan zijn de values in de bron te zien... en dat wil ik niet.

Dit is een voorbeeld maar graag zie ik een betere oplossing
Offline jordisjod - 20/05/2008 12:32
Avatar van jordisjod Nieuw lid inloggen op een site waarvan het beheer/controle niet bij mij ligt. dus bijvoorbeeld sitemasters.
Offline SvenP - 20/05/2008 17:43 (laatste wijziging 20/05/2008 17:44)
Avatar van SvenP PHP interesse Ik zou zeggen dat dit niet mogelijk is ivm veiligheid.
tensei je weet hoe het login systeem van de doelwebsite eruit ziet, kan je dit niet doen.
Offline timmie_loots - 21/05/2008 00:36
Avatar van timmie_loots PHP gevorderde
jordisjod schreef:
Het gaat om een eigen gemaakt service panel!
Het formulier is een voorbeeld om extern in te loggen. Submit een externe link + values dus oa user/wachtwoord.
Deze values kun je gelijk vullen bij het opbouwen van je formulier maar dan zijn de values in de bron te zien... en dat wil ik niet.

Dit is een voorbeeld maar graag zie ik een betere oplossing


Een andere oplossing dan die ene die ik je geef is er simpelweg niet, tenzij je ook de andere website beheert. Je wil vast een "betere" oplossing (eerlijk gezegd betwijfel ik of je wel weet hoe mijn voorbeeld werkt), maar die is er niet.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.215s