Beiträge von toscho

    Lokal wirst du eben eine andere Einstellung haben. Lege mal eine Datei auf deiner Webseite ab, die nur diesen Code enthält und phpinfo.php heißt:

    PHP
    <?php 
    phpinfo();
    ?>


    Da bekommst du eine Übersicht über deine Einstellungen. Unter dem Punkt »Configuration/PHP Core« findest du drei Einträge, die normalerweise so aussehen:

    Code
    magic_quotes_gpc	Off	Off
    magic_quotes_runtime	Off	Off
    magic_quotes_sybase	Off	Off


    Wie sehen die bei dir aus?

    Der Zend-Optimizer und die anderen Einträge sollten keinen Einfluß auf dein Problem haben.

    Ob die Magic Quotes eingeschaltet sind, hat wenig mit der aktuellen PHP-Version zu tun (es sei denn, du verwendest schon Version 6; da sind die weg). Ein Downgrade auf PHP 4 wird daran nichts ändern; deine Webseite wird dadurch bloß deutlich langsamer.

    Wenn du die PHP-Version einstellen kannst, dann vielleicht ja auch die php.ini? Dort (allein) kannst du Magic Quotes abschalten.

    Das kommt drauf an, was man erreichen will. Wenn die Rewrite-Engine einmal angeworfen wurde, um auch anderes zu blocken, kann man die Regeln dort unterbringen und den Störenfried wegschicken, ohne ein einziges Byte zu vergeuden.

    Ansonsten ist die »deny«-Methode schneller, weil sie ohne Rewrite auskommt. Der Abgewiesene bekommt aber je nach Einstellung des Servers eine Textnachricht. Diesen (allerdings geringen) Traffic muß man selbst bezahlen, ob die Nachricht nun gelesen wird oder nicht.

    Im Normalfall wirken sich beide Ansätze nicht wesentlich auf die Performance aus; aber bei sehr gut besuchten Seiten muß man das im Einzelfall genau prüfen und die performantere Lösung ermitteln. Eine goldene Regel gibt es da nicht, weil das sehr von der jeweiligen Einstellung Servers abhängt, von der Hardware und der sonstigen Auslastung.

    Ich tippe auf ein Problem mit den Magic Quotes. Speichere folgenden Code mal als remove-magic-quotes.php im Pluginverzeichnis und aktiviere ihn dann:


    Nachteil: Es entfernt wirklich alle Backslashes. Wenn du im Text einen brauchst, mußt du ihn als \ schreiben.

    Das interessiert eigentlich kaum einen Angreifer. Die probieren binnen Sekunden ein ganzes Rudel typischer Sicherheitslücken aus und beschränken sich ohnehin nicht auf »systemspezifische« Probleme.
    Meistens erkennt man ein WP auch an den benutzten Verzeichnissen; da hilft es wenig, nur dieses Meta-Element herauszunehmen.

    Dennoch kannst du es getrost entsorgen, denn auch deinen normalen Lesern nützt es nichts.

    Der fehlerhaft Code wird offenbar danach eingefügt. In deinem HTML-Code bei:

    HTML
    ?> <hr class="hidden" />


    Suche den Code, der zwischen Sidebar und dieser <hr> steht.

    Solange dein Code bei allen Browsern hilfloses Raten erzwingt, wirst du keine dauerhafte Lösung finden, die ohne Arbeit am Code funktioniert.
    Überdies bindest du Unmengen von Stylesheets und Scripten ein – eine Analyse wäre selbst bei gültigem Markup sehr aufwendig. Bei ungültigem ist sie sinnlos, denn sowohl CSS als auch Javascript brauchen einen sauberen DOM, um vorhersagbare Ergebnisse zu liefern.

    Was hätte mir hier das maskieren genützt?


    Falls du deinen XHTML-Code irgendwann mal nicht mehr als HTML ausgeben, sondern wirklich als XHTML ausliefern möchtest, bricht ein XML-Parser an der ersten nicht maskierten Stelle einfach ab, weil das in deinem Fall ein Verstoß gegen die Wohlgeformtheitspflicht wäre.

    Gute Browser bieten ihrem Leser dann zwar das Neueinlesen als HTML an, aber das möchtest du deinen Besuchern sicher nicht zumuten.

    Warum WordPress unbedingt absolute URLs verwendet, weiß vermutlich niemand. Absolute Pfade würden völlig ausreichen, zumindest außerhalb der Feeds.

    In meiner Funktion zum Entfernen redundanter Links werfe ich diesen Ballast gleich zu Beginn über Bord. Das scheint mir der einzige Weg zu sein, wie man das loswird.