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

  • 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.

  • #2
    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...
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      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.

      Kommentar


      • #4
        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.

        Kommentar


        • #5
          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?

          Kommentar


          • #6
            wieso?
            haste wget? siehste ja was nakommt.

            Kommentar


            • #7
              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).
              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

              Kommentar


              • #8
                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 ).
                [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                Kommentar

                Lädt...
                X