autologin op phpmyadmin

Pagina: 1
Acties:

  • rob3rt
  • Registratie: Maart 2009
  • Laatst online: 17-11 21:12
Hoi,

Ik zoek een manier om automatisch te kunnen inloggen op diverse phpmaydmin websites, de usernames en passwords zitten in een database welke ik uitlees.
Normaal gesproken zou dit gaan via http://username:password@serverip/phpmyadmin echter vele browsers ondersteunen dit niet meer, nu zoek ik een manier om dit te "omzeilen" via een php script.

Ik gebruik al een formulier voor andere soorten logins zoals bv via een POST:

PHP:
1
2
3
4
5
6
    echo "<body onload=\"loginform.submit();\">";
    echo "<FORM name=\"loginform\" ACTION=\"http://".$serverip."/phpmyadmin\" METHOD=\"POST\">";
    echo "<INPUT TYPE='hidden' NAME='username' value='$username'>";
    echo "<INPUT TYPE='hidden' NAME='password' value='$password'>";
    echo "<INPUT TYPE='hidden' name='Login' VALUE='Login'>";    
    echo "</FORM>";


Dit script werkt op websites waar de login met POST werk prima echter op een website zoals phpmyadmin waar je dus een popup krijgt weer niet.

Kan iemand me een hint geven hoe ik een soort gelijk stukje code kan maken zodat auto login werkt op login systemen welke via een popup scherm werken (meestal dus via een .htaccess)?

De bedoeling is dat iemand op een linkje klikt, deze linkt naar het php script, hier worden de juiste gegevens opgehaald zoals IP, user/pass en dat dan een automatische submit volgt naar de website waar ik op in wil loggen. Iemand een tip?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 14:18

gorgi_19

Kruimeltjes zijn weer op :9

* gorgi_19 vermoedt het niet, maar om je verder te helpen: je zult ws moeten kijken of je kan inloggen indien er gebruik gemaakt wordt van Basic Authentication.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Het is mij een beetje onduidelijk waarvoor je dit gaat gebruiken en door wie (klanten, familie o.i.d.) dit gaan gebruiken. Dit is belangrijk omdat het php voorbeeld dat je nu geeft alles behalve veilig is (de postwaarden kunnen zo in het formulier gelezen worden).

Verwijderd

"Normaal gesproken zou dit gaan via http://username:password@serverip/phpmyadmin echter vele browsers "
-> dit klopt niet, bij mij doet zo'n link het gewoon in elke browser (vraagt wel eerst om een bevestiging).

Ik zou zeggen: gebruik ssl en vermijd automatisch logins. Als de mysql servers in hetzelfde netwerk staan, kan je pma ook zo instellen dat je een andere server kan kiezen.

  • Freeaqingme
  • Registratie: April 2006
  • Laatst online: 19-12 18:48
Bij PMA zit een aantal demo files. Een van die files laat zien hoe je automatisch een gebruiker kan laten inloggen.

No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

En when all else fails: HTTP-authentication kun je ook afhandelen met cURL en dergelijken.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • rob3rt
  • Registratie: Maart 2009
  • Laatst online: 17-11 21:12
Verwijderd schreef op zondag 09 augustus 2009 @ 16:06:
Het is mij een beetje onduidelijk waarvoor je dit gaat gebruiken en door wie (klanten, familie o.i.d.) dit gaan gebruiken. Dit is belangrijk omdat het php voorbeeld dat je nu geeft alles behalve veilig is (de postwaarden kunnen zo in het formulier gelezen worden).
@WebSterz
Dat maakt niet uit wie het gaat gebruiken en of de waardes gelezen kunnen worden.
De personen welke het gebruiken weten de logins, het gaat hier puur om het gemak, klik op een linkje en je wordt vanzelf ingelogged. Personen die dit niet mogen weten kunnen niet bij dit script.

@gorgi_19
Dat was net de vraag, ik kan geen enkel voorbeeld of richtlijn vinden hoe ik "automatisch" kan inloggen via een php script als Basic Authentication wordt gebruikt. Het zal best kunnen maar ik kan geen manual vinden waar dit staat hoe te maken, heb je een link?

@rutgerlak
Nou dat is niet waar met bv IE, safari en konquer gaat je dat niet lukken, deze halen het wachtwoord weg waardoor je niet inlogged naar het OK klikken, je komt gewoon weer terug in het inlog scherm.

@iedereen
Ik kan/mag aan de sites waar op ik wil inloggen totaal **NIETS** veranderen, het zal geheel aan bezoekers zijde moeten worden gescript.

@freakingme
Wist ik niet, ik ga ff kijken of ik daar iets kan vinden

@NMe
cURL lijkt me geen optie, ik wil niet de pagina inladen, er moet een nieuwe window/venster worden geopend en in dit nieuwe window moet de website (welke ik link) zichtbaar zijn (dus direct zonder deze eerst in te laden). Ik werk niet zo vaak met cURL(zelden eigenlijk) maar zover ik begrepen heb van de php.net website kan ik niet met cURL enkel inloggen, cURL laad de gehele inhoud en daarmee kan je dan aan de slag, dat is dus niet wat ik wil. (correct me if i am wrong)

[ Voor 0% gewijzigd door rob3rt op 09-08-2009 18:28 . Reden: typo ]


Verwijderd

rob3rt schreef op zondag 09 augustus 2009 @ 18:25:
[...]
@rutgerlak
Nou dat is niet waar met bv IE, safari en konquer gaat je dat niet lukken, deze halen het wachtwoord weg waardoor je niet inlogged naar het OK klikken, je komt gewoon weer terug in het inlog scherm.
Kopieer met javascript dan het wachtwoord naar hun klembord, waarna ze alleen nog maar het wachtwoord hoeven te pasten als ze de auth zien.

  • rob3rt
  • Registratie: Maart 2009
  • Laatst online: 17-11 21:12
@freakingme
Ik kan nergens een script vinden bij de PMA installatie met voorbeeld files hoe remote in te loggen via Basic Authentication

  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 16:50
Staat in de documentatie.

  • b12e
  • Registratie: Augustus 2009
  • Laatst online: 18-12 05:15
Heb je misschien al gerobeerd om met cUrl te werken?

Een eventueel voorbeeld voor het twitter API:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
function twitThis($message) {
$login = "gebruikersnaam:wachtwoord";
$tweets = "http://twitter.com/statuses/update.xml";
$tw = curl_init();
curl_setopt($tw, CURLOPT_URL, $tweets);
curl_setopt($tw, CURLOPT_USERPWD, $login);
curl_setopt($tw, CURLOPT_RETURNTRANSFER, true);
curl_setopt($tw, CURLOPT_HEADER, 1);
//curl_setopt($tw, CURLOPT_POSTFIELDS, "status=".urlencode($message)); // add POST fields=>heb je niet nodig
$return = curl_exec($tw);
//in $return zit nu je header die je terugkreeg. Deze bevat de authenticatie en nog meer rommel, kijk zelf maar
curl_close($tw);
}


Als je eventueel toch cookie authentication kiest in je pMA installatie, dan kan je eventueel lijn 6 weglaten en als lijn 9 terug de postvelden zetten (username=gebruikersnaam&password=wachtwoord)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
function twitThis($message) {
$login = "gebruikersnaam:wachtwoord";
$tweets = "http://twitter.com/statuses/update.xml";
$tw = curl_init();
curl_setopt($tw, CURLOPT_URL, $tweets);
//curl_setopt($tw, CURLOPT_USERPWD, $login);
curl_setopt($tw, CURLOPT_RETURNTRANSFER, true);
curl_setopt($tw, CURLOPT_HEADER, 1);
curl_setopt($tw, CURLOPT_POSTFIELDS, "username=".explode(":", $login)[0]."&password=".explode(':', $login)[1].""); //ben niet zeker dat dit wel werkt, explode en dan direct kiezen welk element uit je array...
$return = curl_exec($tw);
//in $return zit nu je header die je terugkreeg. Deze bevat de authenticatie en nog meer rommel, kijk zelf maar
curl_close($tw);
}


Als je dan een beetje verder gaat:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
function login($strServeradress, $strUsername, $strPassword) {
    $strLoginHeaders  = $strUsername.':'.$strPassword;
 // $strUrl  = "http://bramvandeperre.be:2082/3rdparty/phpMyAdmin"; //cPanel :|
$tw = curl_init();
curl_setopt($tw, CURLOPT_URL, $strServeradress);
curl_setopt($tw, CURLOPT_USERPWD, $strLoginHeaders  );
curl_setopt($tw, CURLOPT_RETURNTRANSFER, true);
curl_setopt($tw, CURLOPT_HEADER, 1);
$return = curl_exec($tw);
//in $return zit nu je header die je terugkreeg. Deze bevat de authenticatie en nog meer rommel, kijk zelf maar
curl_close($tw);
return $return;
}
?>

[ Voor 16% gewijzigd door b12e op 09-08-2009 23:12 ]


  • rob3rt
  • Registratie: Maart 2009
  • Laatst online: 17-11 21:12
Nou ik heb die documentatie gelezen maar kan toch echt niets vinden met voorbeelden hoe ik via PHP een auto login script kan maken. Zoals al gemeld ik mag **NIETS** aanpassen aan PMA zelf of op de server waarop het staat. Mijn script draait dus ook niet op dezelfde server als waarop ik wil inloggen.

  • Sypher
  • Registratie: Oktober 2002
  • Laatst online: 14:24
Waar jij eigenlijk naar op zoek bent is - veronderstel ik - Phpmyadmin single sign on. Dit zoekt een stuk makkelijker :)

In scripts/signon.php staat een voorbeeld van hoe dit werkt.
Weet alleen niet in hoeverre dit werkt als je je phpmyadmin op een compleet andere server heb staan.

[ Voor 3% gewijzigd door Sypher op 09-08-2009 23:32 ]


  • b12e
  • Registratie: Augustus 2009
  • Laatst online: 18-12 05:15
Sypher schreef op zondag 09 augustus 2009 @ 23:32:
Waar jij eigenlijk naar op zoek bent is - veronderstel ik - Phpmyadmin single sign on. Dit zoekt een stuk makkelijker :)

In scripts/signon.php staat een voorbeeld van hoe dit werkt.
Weet alleen niet in hoeverre dit werkt als je je phpmyadmin op een compleet andere server heb staan.
Hij wil gewoon authenticatie bij HTTP signon-servers met wat hij nu heeft :)

  • b12e
  • Registratie: Augustus 2009
  • Laatst online: 18-12 05:15
rob3rt schreef op zondag 09 augustus 2009 @ 15:11:
Hoi,

Ik zoek een manier om automatisch te kunnen inloggen op diverse phpmaydmin websites, de usernames en passwords zitten in een database welke ik uitlees.
Normaal gesproken zou dit gaan via http://username:password@serverip/phpmyadmin echter vele browsers ondersteunen dit niet meer, nu zoek ik een manier om dit te "omzeilen" via een php script.

Ik gebruik al een formulier voor andere soorten logins zoals bv via een POST:

PHP:
1
2
3
4
5
6
    echo "<body onload=\"loginform.submit();\">";
    echo "<FORM name=\"loginform\" ACTION=\"http://".$serverip."/phpmyadmin\" METHOD=\"POST\">";
    echo "<INPUT TYPE='hidden' NAME='username' value='$username'>";
    echo "<INPUT TYPE='hidden' NAME='password' value='$password'>";
    echo "<INPUT TYPE='hidden' name='Login' VALUE='Login'>";    
    echo "</FORM>";


Dit script werkt op websites waar de login met POST werk prima echter op een website zoals phpmyadmin waar je dus een popup krijgt weer niet.

Kan iemand me een hint geven hoe ik een soort gelijk stukje code kan maken zodat auto login werkt op login systemen welke via een popup scherm werken (meestal dus via een .htaccess)?

De bedoeling is dat iemand op een linkje klikt, deze linkt naar het php script, hier worden de juiste gegevens opgehaald zoals IP, user/pass en dat dan een automatische submit volgt naar de website waar ik op in wil loggen. Iemand een tip?
mag ik je erop wijzen dat je nog de oude standaard gebruikt, TAGS moeten nu tags zijn met kleine letters, en moeten afgesloten worden..
PHP:
1
2
3
4
5
6
7
8
<?php
    echo '<body onload="document.getElementById(\'log1\').submit();">':
    echo '<form name="loginform" id="log1" action="http://'.$serverip.'/phpmyadmin" method="post">';
    echo '<input type="hidden" name="username" value="'.$username.'" />';
    echo '<input type="hidden" name="password" value="'.$password.'" />';
    echo '<input type="hidden" name="Login" value="Login" />';    
    echo '</form>';
?>

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

rob3rt schreef op zondag 09 augustus 2009 @ 18:25:
[...]

@NMe
cURL lijkt me geen optie, ik wil niet de pagina inladen, er moet een nieuwe window/venster worden geopend en in dit nieuwe window moet de website (welke ik link) zichtbaar zijn (dus direct zonder deze eerst in te laden). Ik werk niet zo vaak met cURL(zelden eigenlijk) maar zover ik begrepen heb van de php.net website kan ik niet met cURL enkel inloggen, cURL laad de gehele inhoud en daarmee kan je dan aan de slag, dat is dus niet wat ik wil. (correct me if i am wrong)
Volgens mij moet het hier best toepasbaar zijn.
b12e schreef op zondag 09 augustus 2009 @ 23:54:
[...]

mag ik je erop wijzen dat je nog de oude standaard gebruikt, TAGS moeten nu tags zijn met kleine letters, en moeten afgesloten worden..
Onzin, hij gebruikt perfect valide HTML 4. Jouw verhaal gaat alleen op voor XHTML, en ik kan je wel een paar redenen opnoemen om dat juist niet te willen gebruiken. ;) Los ervan dat inconsistent hoofdlettergebruik lelijk is, evenals de twee verschillende soorten quotes die gebruikt worden is het niet verkeerd. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • b12e
  • Registratie: Augustus 2009
  • Laatst online: 18-12 05:15
NMe schreef op maandag 10 augustus 2009 @ 04:27:
[...]

Volgens mij moet het hier best toepasbaar zijn.

[...]

Onzin, hij gebruikt perfect valide HTML 4. Jouw verhaal gaat alleen op voor XHTML, en ik kan je wel een paar redenen opnoemen om dat juist niet te willen gebruiken. ;) Los ervan dat inconsistent hoofdlettergebruik lelijk is, evenals de twee verschillende soorten quotes die gebruikt worden is het niet verkeerd. :)
Er wordt door de webmaster community dus ook aangeraden om xHTML te gebruiken, aangezien de hogere compatibiliteit met recentere mobiele browsers. de HTML4 standaard is ook al wat ouder, en dus is het beter (ik zeg niet verplicht) als je nu pas begint, om het direct goed te doen. de HTML5 standaard zal waarschijnlijk ook wel deze regels volgen, en dus kan je het beter direct correct doen ;)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

b12e schreef op woensdag 12 augustus 2009 @ 23:58:
[...]

Er wordt door de webmaster community dus ook aangeraden om xHTML te gebruiken, aangezien de hogere compatibiliteit met recentere mobiele browsers.
Het grootste deel van de "XHTML-pagina's" wordt niet eens als XHTML behandeld. Het wordt door vele mensen nog steeds onwetend gebruikt en geserveerd als text/html in plaats van als application/xhtml+xml waardoor je dus eigenlijk stiekem helemaal niet in de goeie modus bezig bent. En het leuke is: als je dan wél application/xhtml+xml meestuurt snapt IE6 er weer niks van, en dat wordt nog steeds door genoeg mensen gebruikt om er rekening mee te moeten houden, Meer dan die "moderne mobiele browsers" waar je het over hebt in elk geval. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1