| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 17172 -->
- <!-- 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
- <classname>Zend_View</classname> 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
- <methodname>Zend_View::render()</methodname> 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
- <methodname>render()</methodname> Methode übergeben werden:
- </para>
- <programlisting language="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 <methodname>setLfiProtection()</methodname>
- Methode.
- </para>
- <programlisting language="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:
- -->
|