PHP webproxy

  • Hallo,
    Ich hab mal versucht einen PHP Webproxy zu bauen. Er soll alle Seiten über meine Domain darstelen können. die url der aufzurufenden seite soll über einen GET parameter übermittelt werden, anschließend werden alle weieren aufrufe von dieser ip an meine domain automatisch zu der domain der beim ersten aufruf übergebenen url geleitet. Leider stellt sich das ganze schwieirger als erwartet heraus, ich habe bereits eine funktion die alle domains / ip im content und in den headers replaced, bevor die seite zurückgeben wird, leider funktionieren seiten die cloudflare benutzen immer noch nicht. hat irgendjemand einen plan woran diese seiten erkennen, dass es sich um einen webproxy handelt?
    Das ist mein bsiheriger code:

    Vielen Dank für eure Hilfe!

  • Sieht ja soweit ganz gut aus.

    Ein paar Tipps:

    Statt MySQLi verwende lieber PDO und zB eine Environment Datei, so lässt du die Zugangsdaten aus den eigentlichen Dateien raus :) .

    Zu deinem Problem:

    Du scheinst die IP Adresse zu einer Domain einfach aufzurufen, das klappt bei Load Balancern und solchen Anbietern wie Cloudflare nicht, da diese ihre eigene IP davorstellen, du würdest also am Ende Millionen von Seiten versuchen alle über die selbe IP zu erreichen.

    A red dragon falls from the heavens... Ah, that memory has been lost. A shame. It was a favorite of mine...

  • Sieht ja soweit ganz gut aus.

    Ein paar Tipps:

    Statt MySQLi verwende lieber PDO und zB eine Environment Datei, so lässt du die Zugangsdaten aus den eigentlichen Dateien raus :) .

    Zu deinem Problem:

    Du scheinst die IP Adresse zu einer Domain einfach aufzurufen, das klappt bei Load Balancern und solchen Anbietern wie Cloudflare nicht, da diese ihre eigene IP davorstellen, du würdest also am Ende Millionen von Seiten versuchen alle über die selbe IP zu erreichen.

    Es gibt leider noch mehr unschöne Dinge in dem Code:

    - Der Code verwendet Benutzereingaben direkt in SQL-Abfragen, ohne diese ausreichend zu säubern. Dadurch besteht die Gefahr von SQL-Injection-Angriffen. Verwende vorbereitete Anweisungen oder parameterisierte Abfragen, um dies zu verhindern.

    - Der Code behandelt Fehler bei verschiedenen Operationen, wie der SQL-Verbindung oder cURL-Anfragen, nicht ordnungsgemäß. Es ist wichtig, eine angemessene Fehlerbehandlung zu implementieren, um aussagekräftige Nachrichten bereitzustellen und Fehler ordentlich zu behandeln.

  • Sieht ja soweit ganz gut aus.

    Ein paar Tipps:

    Statt MySQLi verwende lieber PDO und zB eine Environment Datei, so lässt du die Zugangsdaten aus den eigentlichen Dateien raus :) .

    Zu deinem Problem:

    Du scheinst die IP Adresse zu einer Domain einfach aufzurufen, das klappt bei Load Balancern und solchen Anbietern wie Cloudflare nicht, da diese ihre eigene IP davorstellen, du würdest also am Ende Millionen von Seiten versuchen alle über die selbe IP zu erreichen.

    Woher wusstest du eigentlich das ist die Zugangsdaten auslesen wollte?
    Eigentlich brauch ich den WebProxy für meine Suchmaschiene. Ich möchte, dass wenn man einen EIntrag anklickt, die seite dirket daneben in einer kleinen vorschau besuchen kann. Das wäre eine verbesserung zu google, wo man jede seite direkt aufrufen muss. So könnte man viel schneller die suchergebnisse durchgehen und Informationen finden. Ich hab versucht die Seite direkt in ein Iframe einzubetten aber leider blockieren dass 9/10 seiten. Deshalb der Webproxy. Das mit dn Zugangsdaten ist mir so in den Sinn gekommen und ich wollte das unbedingt mal ausprobieren.
    Was ist eine Environment Datei?
    Ah das mit der Ip ergibbt sinn. Leider löst es nicht mein Problem. Heißt es, dass es unmöglich ist cloudflare geschützte seiten über einen webprxy aufzurufen?

    Meine Suchmaschiene Version 1: Tilo Search (tilo-behnke.de)

  • Es gibt leider noch mehr unschöne Dinge in dem Code:

    - Der Code verwendet Benutzereingaben direkt in SQL-Abfragen, ohne diese ausreichend zu säubern. Dadurch besteht die Gefahr von SQL-Injection-Angriffen. Verwende vorbereitete Anweisungen oder parameterisierte Abfragen, um dies zu verhindern.

    - Der Code behandelt Fehler bei verschiedenen Operationen, wie der SQL-Verbindung oder cURL-Anfragen, nicht ordnungsgemäß. Es ist wichtig, eine angemessene Fehlerbehandlung zu implementieren, um aussagekräftige Nachrichten bereitzustellen und Fehler ordentlich zu behandeln.

    jaja du hast recht. ich kümmer mich später um die Sauberheit des Codes hauptsache es läuft erstmal.

  • Was ist eine Environment Datei?

    Erklärt es ganz gut:

    DOTENV in PHP
    When we are creating a project, there are always some sensitive values, and at the beginning we don't...
    dev.to

    Ah das mit der Ip ergibbt sinn. Leider löst es nicht mein Problem. Heißt es, dass es unmöglich ist cloudflare geschützte seiten über einen webprxy aufzurufen?

    möglich ist das schon, nur eben nicht über die IP, du könntest via cURL die Seite abrufen und dann das zurückgelieferte HTML anzeigen, macht dann nur noch CORS ein Problem.

    jaja du hast recht. ich kümmer mich später um die Sauberheit des Codes hauptsache es läuft erstmal.

    Mach es jetzt, die Sicherheit einer Anwendung ist stets Priorität Nummer 1.

    A red dragon falls from the heavens... Ah, that memory has been lost. A shame. It was a favorite of mine...

  • Ich würde dir gerne noch 2 Dinge mit auf den Weg geben...

    1. Wer urheberrechtlich geschützte Inhalte über ein IFRAME einbindet, obwohl der Urheber technische Maßnahmen getroffen hat, die dies verhindern sollen, verstößt gegen das Urheberrecht. Dies ist zumindest dann der Fall, wenn diese Maßnahmen umgangen werden.

    2. Für alle Inhalte die du direkt in deine Seite einbindest haftest du auch...außer man kann explizit erkennen das es sich um fremde Inhalte handelt.

  • Ich würde dir gerne noch 2 Dinge mit auf den Weg geben...

    1. Wer urheberrechtlich geschützte Inhalte über ein IFRAME einbindet, obwohl der Urheber technische Maßnahmen getroffen hat, die dies verhindern sollen, verstößt gegen das Urheberrecht. Dies ist zumindest dann der Fall, wenn diese Maßnahmen umgangen werden.

    2. Für alle Inhalte die du direkt in deine Seite einbindest haftest du auch...außer man kann explizit erkennen das es sich um fremde Inhalte handelt.

    puh ich das alles kompliziert.
    Warum kann das Internet nicht einfach ein gemütlicher Ort zum programmieren sein

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!