Ankündigung

Einklappen
Keine Ankündigung bisher.

Cronjob und Weiterleitung mittels Header

Einklappen

Neue Werbung 2019

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

  • Cronjob und Weiterleitung mittels Header

    Moin allerseits!

    Ich habe folgende Frage an die Experten:

    Ich habe eine datei geheimeseite.php. Diese ist via HTTP-Authentifizierung geschützt.
    Bislang steuere ich diese Seite einmal täglich manuell über meinen Browser an und lasse das darin befindliche Skript somit laufen.

    Nun bot mir ein Freund an, dass ich mir auf seinem Server auch einen Cronjob dafür einrichten könnte.
    Der Gedanke ist nun also, dass ich auf seinem Server per Cronjob einmal täglich ein Skript ausführen lasse, das auf seinem Server liegt und dass wiederum die Datei auf meinem Server aufruft und somit ausführt. Mein Webhosting Paket hat leider keine eigene Möglichkeit für Cronjobs.

    Nun die Fragen hierzu:

    1. Könnte ich in der per Cronjob ausgeführten Datei einfach einen Eintrag der Form „Header: location…“ hinterlegen und die http_auth Daten einfach direkt über den Header mitgeben?
    Z.B. in der Form: „Authorization: Basic blablablaBase64codierteCredentials“

    2. Auf wikipedia.de heißt es: „Stellt der Webserver fest, dass für eine angeforderte Datei Benutzername oder Passwort nötig sind, meldet er das dem Browser mit dem Statuscode 401 Unauthorized und dem Header WWW-Authenticate. Der Browser ermittelt nun die zur Anmeldung notwendigen Daten (indem er den Nutzer fragt oder schon früher eingegebene Werte verwendet)“.
    Meine Frage ist wie diese „früher eingegebenen Werte“ aussehen müssen bzw. was damit gemeint ist. Wäre das z.B. mein im Header von vorne herein mitgegebenes Passwort?

    3. Funktioniert das Ganze überhaupt über „header: location…“ oder hättet ihr andere Ideen wie man das Thema sinnvoll lösen könnte?

    Eure Ideen würden mich hier sehr interessieren.

    Besten Dank!

    Seb

  • #2
    Hm... sorry falsch gelesen.

    Er kann natürlich in seinem Cronjob deine URL ansteuern. Basic Auth geht in dieser Art auch ganz einfach über die URL

    http://benutzername:kennwort@example.org

    Kommentar


    • #3
      Du kannst per cron curl oder ähnliches starten.
      Und curl ruft deine Seire; ob das bringt sei mal dahingestellt.

      http://curl.haxx.se/

      Kommentar


      • #4
        Ich frag mal ganz stupide: Warum ist die denn "geschützt", muss das sein ?

        Kommentar


        • #5
          Dafür gibt es auch kostenlose Cronjob-Dienste. Betr. Auth siehe #2 (dennis81).

          Kommentar


          • #6
            Zitat von tr0y Beitrag anzeigen
            Ich frag mal ganz stupide: Warum ist die denn "geschützt", muss das sein ?
            Und wieder mal ein Stück Weiter gedacht.

            Kommentar


            • #7
              @dennis81
              Habe bisher noch nie einen Cronjob eingerichtet.
              Kann man definitiv auch direkt ein Skript ausführen lassen, dass nicht auf dem eigenen Server liegt?
              Teste deine Variante nachher mal wenn ich daheim bin.

              @tr0y
              Die Datei liegt in einem Subfolder meiner Domain, also beispielsweise in http://www.meine-domain.de/unterordn...heimedatei.php.
              Den Schutz über Http-Auth. hatte ich damals gesetzt, damit niemand Unbefugtes einfach die URL direkt über den Browser ansteuern kann.
              Wusste damals nicht wie ich es anders hätte unterbinden können, dass jemand unbefugtes die Datei direkt aufruft. Habe mich seitdem leider auch nicht weiter mit dem Thema befasst.

              Daher:
              1. Gibt es da ne sinnvolle Lösung (z.B. über .htaccess?) um diese Seite unaufrufbar für Unbefugte zu machen?
              2. Gemäß dem Fall die Seite wäre nicht geschützt, hättest du dann eine simple Lösung für mein Problem?

              Danke euch allen schon mal für die Antworten!

              Kommentar


              • #8
                EG2011, benötigt dein Script neben der Authentifizierung noch weitere Benutzereingaben per Formular o.ä. ?

                Kommentar


                • #9
                  @jspit
                  Es gibt kostenlose, allerdings hört/liest man da öfters mal, dass deren IP-Ranges u.U. irgendwann von den Webhostern geblockt werden. Daher wollte ich eine dauerhafte Lösung und nichts wo ich u.U. auf Kurz oder Lang wieder Hand anlegen muss.

                  Kommentar


                  • #10
                    @jspit
                    Nein, es benötigt sonst nichts. Es startet im Prinzip eine Latte von Querys, die auf eine DB losgelassen werden.

                    Kommentar


                    • #11
                      Da muß doch wohl nur dafür gesorgt werden, daß dein Script nicht mehrmals am Tag aufgerufen wird. Dies abzufangen und das Script dann per exit zu verlassen dürfte doch nicht die Hürde sein.
                      Bei den kostenlosen Cron-Diensten, bei 1 Aufruf pro Tag, wer soll da was blocken?
                      Ich hätte eher Bedenken, was die längerfristige Zuverlässigkeit angeht.

                      LG jspit

                      Kommentar


                      • #12
                        Ersteres ist ja auch nicht das Problem. Das kann man ja schon über die GUI des Cronjob-Interfaces steuern.
                        Natürlich hat man dann keine Gewissheit, dass das Skript nicht auch manuell nochmal ausgelöst wird, aber da ich der Einzige bin der es startet/starten kann ist das auch kein Problem.

                        Hatte mich zu den kostenlosen Cron-Anbietern mal durch diverse Foren gewühlt und da war öfters zu lesen, dass die Webhoster versuchen sich dagegen zu wehren (klar, Cronjobs sind normalerweise ja auch nur in den teureren Paketen der Webhoster mit drinnen und die wollen ihre eigenen Features verlaufen).

                        Längerfristige Zuverlässigkeit ist noch ein zusätzliches Thema, genau.

                        Kommentar


                        • #13
                          Du kannst das Cronjob-Script doch einfach öffentlich machen. Setz am Anfang des Scripts ne Prüfung ob _GET['foo'] = '923849823498237492376528ß2394ß0923ß09427657902823 798423' ist, falls nicht lass es abbrechen.

                          Solche Scripts effektiv zu schützen ist manchmal banaler als man denkt. ( Du musst hier ja nicht mit dynamischen Schlüsseln arbeiten, es reicht ja ein langer String den nur du kennst und auch mit niemand anderen teilst )

                          So kann dann auch jeder der von dir autorisiert wurde und über diesen Schlüssel verfügt das "Teil" aufrufen. Auch Heinz-Peter Mustermann mit Server XY der dir Cronjobs geben will. ( Angsthasen würden hier öffentliche Cronjob-Dienste vorziehen, weil Heinz-Peter auch beim Skat bescheißt )

                          Kommentar


                          • #14
                            Wenn ich dich richtig verstehe:
                            HTTP-Auth weglassen und stattdessen am Anfang des Skripts prüfen, ob geheimdatei.php?foo=78436782163821763217836 aufgerufen wurde oder eben nur geheimedatei.php und in letzterem Fall das Skript einfach abbrechen.
                            Im Cronjob würde ich dann logischerweise die URL inklusive dem Parameter foo hinterlegen.

                            Hab ich dich so richtig verstanden?

                            Kommentar


                            • #15
                              Ja.

                              Kommentar

                              Lädt...
                              X