<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 15103 -->
<!-- Reviewed: no -->
<sect1 id="zend.view.migration">
    <title>Migration von vorhergehenden Versionen</title>

    <para>
        Dieses Kapitel dokumentiert primär Brüche in der Rückwärts-Kompatibilität die in Zend_View
        durchgeführt wurden, und sollte als Hilfe im Fall einer Migration von vorhergehenden
        Versionen dienen.
    </para>

    <sect2 id="zend.view.migration.zf5748">
        <title>Migration von Versionen vor 1.7.5</title>

        <para>
            Vor dem 1.7.5 Release wurde das Zend Framework Team darauf aufmerksam gemacht das eine
            potentielle Local File Inclusion (LFI) Schwäche in der <classname>Zend_View::render()</classname>
            Methode existiert. Vor 1.7.5, erlaubte die Methode standardmäßig, die Fähigkeit View
            Skripte zu spezifizieren die Schreibweisen für Eltern-Verzeichnisse enthalten (z.B.
            "../" oder "..\"). Das öffnet die Möglichkeit für eine LFI Attacke wenn ungefilterte
            Benutzereingaben an die <code>render()</code> Methode übergeben werden:
        </para>

        <programlisting role="php"><![CDATA[
// Wobei $_GET['foobar'] = '../../../../etc/passwd'
echo $view->render($_GET['foobar']); // LFI Einbruch
]]></programlisting>

        <para>
            <classname>Zend_View</classname> wirft jetzt standardmäßig eine Ausnahme wenn so ein View Skript
            angefragt wird.
        </para>

        <sect3 id="zend.view.migration.zf5748.disabling">
            <title>Ausschalten des LFI Schutzes für die render() Methode</title>

            <para>
                Da viele Entwickler gemeldet haben das Sie so eine Schreibweise in Ihren
                Anwendungen verwenden die <emphasis>nicht</emphasis> das Ergebnis einer
                Benutzereingabe sind, wurde ein spezielles Flag erstellt um das Deaktivieren des
                standardmäßigen Schutzes zu erlauben. Es gibt 2 Methoden um das Durchzuführen:
                Indem der 'lfiProtectionOn' Schlüssel in den Konstruktor-Optionen übergeben wird,
                oder durch den expliziten Aufruf der <code>setLfiProtection()</code> Methode.
            </para>

            <programlisting role="php"><![CDATA[
// Ausschalten über den Konstruktor
$view = new Zend_View(array('lfiProtectionOn' => false));

// Ausschalten über expliziten Aufruf der Methode:
$view = new Zend_View();
$view->setLfiProtection(false);
]]></programlisting>
        </sect3>
    </sect2>
</sect1>
<!--
vim:se ts=4 sw=4 et:
-->
