Ankündigung

Einklappen
Keine Ankündigung bisher.

cURL: mehrere htaccess-Passwortabfragen handlen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • cy221
    hat ein Thema erstellt cURL: mehrere htaccess-Passwortabfragen handlen.

    cURL: mehrere htaccess-Passwortabfragen handlen

    Hallo Forum,

    ich bin neu hier.

    Mein Vorhaben liegt daran, bestimmte Informationen aus HTML-Tabellen von Seiten im Intranet per cURL auszulesen.

    Als User gehe ich so vor:
    1. http://intranet im Browser eingeben
    2. Zugangsdaten eingeben, abschicken
    3. zwei weitere htaccess Passwortabfragen erscheinen, die ich theoretisch abbrechen kann (andere URLs, von denen Bilder u.ä. eingebunden werden), aber damit sie bei jedem Neuladen der Website nicht nerven, gebe ich die selben Zugangsdaten auch da ein.

    Ich muss mich offensichtlich authentifizieren, um bestimmte Unterseiten im Intranet zu erreichen.

    Diese Klasse habe ich mir bereits heruntergeladen, da sie nützlich aussieht. https://github.com/php-curl-class/php-curl-class

    Mein kurzes Script, das noch nicht funktionieren kann:
    PHP-Code:
    <?php
    error_reporting
    (E_ALL);
    require 
    'Curl.php';
    use \
    Curl\Curl;

    $curl = new Curl();
    $curl->setBasicAuthentication('user''password');
    $curl->setBasicAuthentication('user''password');
    $curl->setBasicAuthentication('user''password');
    $curl->setOpt(CURLOPT_HEADER0);
    $curl->setOpt(CURLOPT_FOLLOWLOCATION1);    // follow redirect
    $curl->setUserAgent('Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0');
    $curl->setReferrer('');
    $curl->setCookie('key''value');


    $curl->get('http://intranet/SitePages/Unterseite.aspx');

    if(
    $curl->error) {
        echo 
    'Error: ' $curl->error_code ': ' $curl->error_message;
    } else {
        
    $curl->response;
    }


    ?>
    Auf welche Weise kann ich drei Passwortabfragen füttern, um die Unterseite zu erreichen, ohne dass mir ein 401-Code ausgegeben wird?

    Vielen Dank.

  • tr0y
    antwortet
    Wenn es sich um eingebettete Bilder und scripts dreht, die jucken cURL nicht, auch frames stören cURL nicht. cURL behandelt nur diesen einen Request für dieses eine Dokument. Wenn du den Body dieser Seite an den Client weitergibst musst du eigentlich nur auf die GETs reagieren ( und den nicht vorhandenen Murks mit FallbackResource oder mod_rewrite auf dein Script umschreiben ).

    Einen Kommentar schreiben:


  • lstegelitz
    antwortet
    Wichtig ist, das du beim zweiten (oder jedem weiteren) Request die Authentifizierung mitschleifen musst (aka, entweder ein Sessioncookie im Sinne der Anwendung, oder die entsprechenden HTTP Header bei BasicAuth).

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    wieso?
    haste wget? siehste ja was nakommt.

    Einen Kommentar schreiben:


  • cy221
    antwortet
    Das trifft sich gut. Mich interessieren nur bestimmte Tabellen. Aber um an die heranzukommen, muss ich trotzdem die übrigen Passwortabfragen für die anderen Domains beantworten?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von cy221 Beitrag anzeigen
    Die erste Abfrage möchte das Passwort für http://intranet, worauf sich die Informationen befinden, die ich auslesen möchte. Die darauffolgenden Passwortabfragen betreffen andere Domains, von der irgendwelche Bilderchen, etc. kommen.
    Du solltest wissen, dass Dir curl nur markup zieht, unterabfragen, wie src atrributes bei css/js/img werden nicht automatisch aufgelösst und gesaugt.

    Einen Kommentar schreiben:


  • cy221
    antwortet
    Eigentlich erwarte ich keine Redirects. Ich gebe die URL ein, die ich einlesen möchte, aber ich muss drei Passwortabfragen erledigen.

    Die erste Abfrage möchte das Passwort für http://intranet, worauf sich die Informationen befinden, die ich auslesen möchte. Die darauffolgenden Passwortabfragen betreffen andere Domains, von der irgendwelche Bilderchen, etc. kommen. Die interessieren mich nicht. Von mir aus würde ich die auch einfach unbeantwortet lassen. Nur gehe ich davon aus, dass alle Passwortabfragen behandelt werden müssen, damit ich das Intranet per cUrl betreten kann.

    Passwortabfragen erhalte ich im IE übrigens nicht, da wir Windows Trusted Login nutzen. Kann ich das mit cUrl ausnutzen? Wahrscheinlich nicht.

    Einen Kommentar schreiben:


  • lstegelitz
    antwortet
    Wenn nach dem ersten CURL Request ein Redirect empfangen wird (und du folgst diesem, CURLOPT_FOLLOWLOCATION), dann spielen CURL und Server Ping-Pong, ohne das dein Scriptcode nochmal drankommt.

    Du wirst nicht umhin kommen, diesen Fall manuell abzufangen, dh. du lässt CURL nicht automatisch dem Redirect folgen, sondern musst beim Auffinden eines Redirects diesen als neuen CURL Request umformulieren und dann die richtigen Nutzerdaten mitgeben...

    Einen Kommentar schreiben:

Lädt...
X