Via Cronjob PHP Datei aufrufen?
Manche von euch, die selbst an einer Website programmieren, werden wissen, dass Cronjobs sehr hilfreich sein können. Nun habe ich mir folgendes gedacht:
Jede Woche wird per Cronjob ein PHP Script aufgerufen. Dieses liest die E-Mail-Adressen aus, die in der Datenbank für den Newsletter eingetragen sind und versendet an alle E-Mail-Adressen einen vorher festgelegten Newsletter. Das ist deutlich komfortabler, als alles selbst durchzuführen.
Für alle, die nicht wissen, was ein Cronjob ist: Damit kann man in vorher festgelegten Abständen einen Aktion auf dem Webserver durchführen.
Nun will ich natürlich nicht, dass eine Person zufällig auf die URL stößt und diese dann aufruft. Denn dann könnte der Newsletter z.B. mehrfach oder auch zum falschen Zeitpunkt versendet werden. Kann man es festlegen, dass sich die Datei nicht einfach so aufrufen lässt, sondern nur nach dem Aufruf über einen Cronjob ausgeführt werden soll? Wie kann ich so etwas hinbekommen? Kann ein Angreifer das umgehen oder gibt es eine sichere Möglichkeit, dass ein Script nur für den Cronjob gültig ist?
Natürlich kannst du bestimmte Dateien auf deinem Webserver nicht für jeden freigeben und auch von der Öffentlichkeit verbergen. Du hast das sicherlich schon öfter beim Surfen gesehen, dass dir dein Browser die Meldung 403 Forbidden(Bin mir nicht 100% sicher ob die Fehlermeldung stimmt.) ausgibt.
Die meisten Server haben einen Ordner auf ihrem Server, auf den natürlich niemand zu greifen sollte. Ich weiß nicht genau, wie das die meisten Betreiber regeln aber mir würden dabei einige Varianten einfallen. Zum einen könntest du in der Datei einfach die IP-Adresse abfragen und somit herausfinden ob du oder irgendjemand fremdes diese Datei abrufen möchte. Das lässt sich mit PHP recht einfach schreiben und diese Variante würde ich dir empfehlen.
Eine weitere Variante wäre die Datei einfach nicht auf dem Server zu speichern. Du könntest sie lokal auf deinem Computer haben und wöchentlich einfach hochladen und ausführen.
Mein Vorredner spricht eine Möglichkeit ja schon an, nämlich die Prüfung der IP-Adresse. Dies lässt sich natürlich nicht nur mit PHP lösen, sondern kann auch in einer .htaccess Konfiguration festgelegt werden (Stichwort "deny from all; allow from 127.0.0.1"), falls dies der Browser denn unterstützt. Der Vorteil einer htaccess-Zugriffsbeschränkung liegt in der Sicherheit sowie der Performance: wenn die IP-Adresse nicht stimmt, darf man das Script gar nicht erst aufrufen.
Gleichermaßen gibt es beim Apache Webserver noch den Weg über mod_rewrite, denn auch damit kannst du eine Regel festlegen (Stichwort RewriteCond), welche den Zugriff beschränkt. Diese Variante ist ungleich umfangreicher, dafür ist sie aber auch wesentlich komplizierter. Mit mod_rewrite kannst du zum Beispiel auch den verwendeten Browser abfragen (HTTP_USER_AGENT) und nur einen speziellen Typ oder eine eigens gestaltete Browseridentifikation zulassen. Wenn du beispielsweise den Textbrowser Lynx verwendest, kannst du den User-Agent in der Kommandozeile anpassen. Der Vorteil dieser Variante liegt in der Möglichkeit, dass du auch extern (und manuell) auf das Script zugreifen kannst.
Die wahrlich einfachste Möglichkeit nenne ich aber zum Schluss: sollte PHP nicht als Apache-Modul sondern als CGI auf dem Webserver installiert worden sein, dann musst du dir darüber keine Gedanken machen! Dann kannst du die betreffende PHP-Datei nämlich ausserhalb des web-roots ablegen, sodass sie für den Webserver gar nicht erst existiert. Der Cronjob oder ein dadurch aufgerufenes Script ruft die PHP-Binary direkt auf und übergibt den Pfad zur entsprechenden Datei ("php /pfad/zu/deiner/php/datei.php"). Weil der Webserver in diesem Fall komplett aussen vor gelassen wird, ist dies die eindeutig beste Möglichkeit.
Link dieser Seite https://www.talkteria.de/forum/topic-163992.html
Ähnliche Themen
Weitere interessante Themen
- Palmen Pflanzen - brauche Tipp / Empfehlung 1100mal aufgerufen · 1 Antworten · Autor: Triops · Letzter Beitrag von Verbena
Forum: Garten & Pflanzen
- Palmen Pflanzen - brauche Tipp / Empfehlung
- Gartenbambus im Treppenhaus überwintern? 1149mal aufgerufen · 1 Antworten · Autor: ZappHamZ · Letzter Beitrag von Verbena
Forum: Garten & Pflanzen
- Gartenbambus im Treppenhaus überwintern?
- Intimrasur - Bekomme immer Pickel! 1542mal aufgerufen · 1 Antworten · Autor: Wifey · Letzter Beitrag von Verbena
Forum: Fingernägel, Haut & Haare
- Intimrasur - Bekomme immer Pickel!
- Anleitung für Star Frisur 1176mal aufgerufen · 1 Antworten · Autor: Osterhasi · Letzter Beitrag von Verbena
Forum: Fingernägel, Haut & Haare
- Anleitung für Star Frisur
- Ist Sprühwachs für die Haare schädlich? 2364mal aufgerufen · 1 Antworten · Autor: winny2311 · Letzter Beitrag von Verbena
Forum: Fingernägel, Haut & Haare
- Ist Sprühwachs für die Haare schädlich?