Externe URL entfernen

  • Hallo zusammen, ich bin neu hier und bedanke mich ein Mitglied sein zu dürfen.

    Ich hätte da eine Frage bezüglich Webserver bzw. Apache2. Ist es möglich den HTML-Code von einer Seite durch einer htaccess-Datei zu modifizieren, bevor dieser gelanden wird vom Browser?

    Als Beispiel:

    PHP
    <img src="https://www.google.co.uk/search?q=forum+hilfe" />

    Wie man sieht ist es keine Image-Datei, trotzdem kann man im Hintergrund was ausführen.

    Kann ich solche Links unbrauchbar machen? Es gibt auch spezielle URLs die man hinter solchen Image-Tags versteckt um jemanden zu schaden, deswegen würde ich gerne wissen ob man diese URLs unbrauchbar machen kann nur durch einen Eintrag in der htaccess oder sonst wo ohne eine andere Datei auf dem FTP zu modifizieren.

    Bin für jede Antwort dankbar!


    EDIT:

    Ich bin schon etwas weiter gekommen, ich habe einTutorial gefunden und das Modul installiert, leider bekomme ich ein 500 Internal Error mit dieser Error-Zeile:

    HTML
    /home/***/public_html/.htaccess: ExtFilterDefine not allowed here

    Diesen Eintrag habe ich in meiner htaccess gemacht:

    HTML
    <IfModule mod_ext_filter.c>
       ExtFilterDefine add-tm mode=output intype=text/html cmd="/bin/sed 's/alteURL/neueURL/g'"
    </IfModule>

    Ich verwende WHM+cPanel auf meinem Server. Die Seite läuft über ein mit WHM erstellten cPanel account.

    Das Tutorial:http://www.rightbrainnetworks.com/blog/mod_ext_f…ed-step-sister/

    3 Mal editiert, zuletzt von raicoon2k (1. Februar 2017 um 14:00)

    • Offizieller Beitrag

    Hallo,

    Ich bin mir grad nicht sicher, ob Deine Mühen das ganze überhaupt wert sind.
    Im src-Attribut eines <img>-Tags kannst Du jede beliebige URL reinschreiben. Das muss kein physikalisches Bild sein. Die Gegenstelle entscheidet, was am Ende ausgeliefert wird.
    Sowas steuert man über den Response-Header. Wenn dort ein JPG ausgeliefert wird, wird auch das entsprechende JPG dargestellt.

    Es gibt Seiten, die machen das so, weil sie "on-the-fly" bspw. Wasserzeichen in die Bilder einbetten o.ä.
    Da wird dann mit einem Parameter auf ein PHP-Script gezeichgt, dass die "Berechnungen" durchführt und das fertig zusammen geklöppelte Bild über den Response zurücksendet.
    Im Browser wird Dir dann das Resultat als Bild angezeigt.

    Wenn Du diese Technik mit Apache-Regeln unterbindest, würdest Du auf solchen Seiten keine Bilder mehr sehen oder die Seite wirft einen Fehler...

    Gruß Arne

  • Danke für deine Antwort!

    Ist es denn möglich eine bestimmte URL aus dem Source-Code zu entfernen mit htaccess?

    Es würde auch reichen wenn aus das

    HTML
    <img src="https://www.google.co.uk/search?q=forum+hilfe" />

    das

    HTML
    <img src="https:///search?q=forum+hilfe" />

    wird, oder die Seite, die versucht durch eine manipulierte Image-URL (von bestimmten Seiten) einen "Code 403" bekommt, ich weiß nur nicht wie ich das testen könnte, hab da was gefunden, aber keine Ahnung ob das klappt:

    Apache Configuration
    #if the request came from foo.com
    RewriteCond %{HTTP_REFERER} ^http://foo\.com$
    #then serve it a 403 Forbidden
    RewriteRule . - [F,L]
  • Okay, es gibt vielleicht noch eine Möglichkeit, die mir einfällt, aber ich weiß nicht ob es möglich ist.

    Sagen wir mal ich kann die PHP abc.php nicht einsehen, aber ich würde gerne den Inhalt ändern bevor er zum Client gesendet wird.

    PHP
    <?php
    include "abc.php";
    ?>

    Wäre es möglich, bevor der Inhalt der PHP abc.php an den Browser übergeben wird, vorher zu "manipulieren" und erst dann an den Browser weitergegeben wird?

    Ich weiß, hört sich alles so umständlich an, aber ich habe leider nicht auf jede PHP Zugriff wegen IonCube Encoder.

    • Offizieller Beitrag
    Zitat

    Wäre es möglich, bevor der Inhalt der PHP abc.php an den Browser übergeben wird, vorher zu "manipulieren" und erst dann an den Browser weitergegeben wird?

    Grundsätzlich ja und dafür ist PHP auch geeignet.
    Ob Du allerdings Zugriff auf die Seite hast und in wieweit Du da was manipulieren kannst, kann ich Dir nicht beantworten, da müsstest Du schon klare Beispiele liefern.

  • Okay als Beispiel wäre die abc.php mit einer unbekannten Variable ($x) im Image-Tag, die Ausgabe ist immer gleich:

    PHP
    <img src="<?php echo $x; />

    Diese abc.php kann ich nicht einsehen, da sie verschlüsselt ist, also müsste ich eine neue PHP-Datei erstellen, diese PHP als "Proxy" für abc.php nutzen, den ausgegebenen Inhalt vorher abfangen, modifizieren und zum Client senden. Soll im Prinzip das gleiche machen wie "str_replace" für Strings. Mir fällt nur nicht ein wie man das am besten machen könnte, mit include geht das ja nicht, oder?

    • Offizieller Beitrag

    Ich denke nicht, dass Du erreichen wirst, was Du vorhast.

    Wenn die abc.php "verschlüsselt" ist, und Du da nicht reinschauen bzw. darin direkt etwas ändern kannst, kannst Du auch logischer Weise nichts am an der "echo $x"-Geschichte ändern.
    Was gehen würde, wäre, wenn Du den Punkt abfangen kannst, an dem das fertig gerenderte Dokument an den Client gesendet wird.

    Aber kannst Du das?

    • Offizieller Beitrag

    Na am Ende wird das Dokument an den Browser gesendet. In den häufigsten Fällen einfach mit echo oder print.
    Die Ausgabe an sich, also das HTML-Dokument wird zuvor in eine Variable gerendert, welche dann einfach ausgegeben wird, bspw.:

    PHP
    echo $sRenderedDocument;

    Natürlich gibt es auch andere Vorgehensweisen, aber am Ende spielt es keine Rolle, wie es gemacht wird, sondern dass Du vermutlich an diese Punkte nicht ran kommst und damit Dein Vorhaben für Dich nicht umsetzbar ist.