Blacklist automatisch via Cronjob aktualisieren lassen

  • Hallo,


    ich würde gerne die Felder für User-Agents, Hostnames und IP-Adressen unter Konfiguration -> Sicherheit -> Blacklist automatisch über einen Cronjob aktualisieren.

    Die Infos werden via HTTP-Request von einer REST-API geholt und sollen dann in die entsprechenden Felder (blacklist_ip_addresses / blacklist_user_agents / blacklist_hostnames) eingetragen werden.


    Ich hab das ganze mal manuell über die Datenbank probiert, das WCF zeigt die Änderungen jedoch nicht an, da es die Einträge auch in der options.inc.php vorhält.

    Welche Aktion muss der Cronjob ausführen, damit das WCF die options.inc.php neu erstellt?


    Danke!


    EDIT: Augenscheinlich ist OptionEditor.class.php (Zeile 135) bzw. OptionEditor::rebuild() hierfür zuständig. Korrekt?

  • Hallo,


    Welche Aktion muss der Cronjob ausführen, damit das WCF die options.inc.php neu erstellt?

    Antwort: Die options.inc.php löschen.


    Ungefragte Antwort: Webserver sind um den Faktor unendlich (*) besser als PHP um unerwünschte Besucher auf Basis des User-Agents fernzuhalten. Firewalls sind unendlich (*) besser als Webserver um auf Basis von IP-Adressen unerwünschte Bsucher abzuweisen.


    (*) Nicht mathematisch überprüft.

  • Antwort: Die options.inc.php löschen.

    Also doch die Holzhammer-Methode.

    Guter Punkt, ist mir aber schon bekannt. :)


    Ungefragte Antwort: Webserver sind um den Faktor unendlich (*) besser als PHP um unerwünschte Besucher auf Basis des User-Agents fernzuhalten. Firewalls sind unendlich (*) besser als Webserver um auf Basis von IP-Adressen unerwünschte Bsucher abzuweisen.


    (*) Nicht mathematisch überprüft.

    Ich handhabe das auch so, dass ich die "Angreifer" schon so früh wie möglich abblocke (sei es durch Router/Firewall/Webserver), was leider nicht immer möglich ist. Deswegen diese Frage.


    Danke nochmals! :)

  • Also doch die Holzhammer-Methode.

    Du kannst auch \wcf\data\option\OptionEditor::rebuild() aufrufen, schreibt direkt die neue options.inc.php. Es spielt aber keine Rolle, welche Variante du verwendest, denn wenn die Datei fehlt, wird die genannte Methode vom Core auch aufgerufen.

  • Ich handhabe das auch so, dass ich die "Angreifer" schon so früh wie möglich abblocke (sei es durch Router/Firewall/Webserver), was leider nicht immer möglich ist.

    Nur was ich nicht verstehe, alles das was Du im WSC abfängst (hostname oder user agent) kannst Du bereits auch schon im Webserver bzw. in der Firewall abfangen, und das wie Herr Ebert schon sagte deutlich effizienter.

  • Nur was ich nicht verstehe, alles das was Du im WSC abfängst (hostname oder user agent) kannst Du bereits auch schon im Webserver bzw. in der Firewall abfangen, und das wie Herr Ebert schon sagte deutlich effizienter.

    Wie gesagt, ist mir klar, aber ab und an hat man einfach keine andere Möglichkeit. Kaum zu glauben, ist aber so.

    Hätte ich in diesem speziellen Fall die Möglichkeiten, würde ich definitiv nicht auf so "dumme" Ideen kommen. ;)


    SoftCreatR Schau ich mir mal an. Danke!