Zend_View-Migration.xml 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15103 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.view.migration">
  5. <title>Migration von vorhergehenden Versionen</title>
  6. <para>
  7. Dieses Kapitel dokumentiert primär Brüche in der Rückwärts-Kompatibilität die in Zend_View
  8. durchgeführt wurden, und sollte als Hilfe im Fall einer Migration von vorhergehenden
  9. Versionen dienen.
  10. </para>
  11. <sect2 id="zend.view.migration.zf5748">
  12. <title>Migration von Versionen vor 1.7.5</title>
  13. <para>
  14. Vor dem 1.7.5 Release wurde das Zend Framework Team darauf aufmerksam gemacht das eine
  15. potentielle Local File Inclusion (LFI) Schwäche in der <classname>Zend_View::render()</classname>
  16. Methode existiert. Vor 1.7.5, erlaubte die Methode standardmäßig, die Fähigkeit View
  17. Skripte zu spezifizieren die Schreibweisen für Eltern-Verzeichnisse enthalten (z.B.
  18. "../" oder "..\"). Das öffnet die Möglichkeit für eine LFI Attacke wenn ungefilterte
  19. Benutzereingaben an die <code>render()</code> Methode übergeben werden:
  20. </para>
  21. <programlisting role="php"><![CDATA[
  22. // Wobei $_GET['foobar'] = '../../../../etc/passwd'
  23. echo $view->render($_GET['foobar']); // LFI Einbruch
  24. ]]></programlisting>
  25. <para>
  26. <classname>Zend_View</classname> wirft jetzt standardmäßig eine Ausnahme wenn so ein View Skript
  27. angefragt wird.
  28. </para>
  29. <sect3 id="zend.view.migration.zf5748.disabling">
  30. <title>Ausschalten des LFI Schutzes für die render() Methode</title>
  31. <para>
  32. Da viele Entwickler gemeldet haben das Sie so eine Schreibweise in Ihren
  33. Anwendungen verwenden die <emphasis>nicht</emphasis> das Ergebnis einer
  34. Benutzereingabe sind, wurde ein spezielles Flag erstellt um das Deaktivieren des
  35. standardmäßigen Schutzes zu erlauben. Es gibt 2 Methoden um das Durchzuführen:
  36. Indem der 'lfiProtectionOn' Schlüssel in den Konstruktor-Optionen übergeben wird,
  37. oder durch den expliziten Aufruf der <code>setLfiProtection()</code> Methode.
  38. </para>
  39. <programlisting role="php"><![CDATA[
  40. // Ausschalten über den Konstruktor
  41. $view = new Zend_View(array('lfiProtectionOn' => false));
  42. // Ausschalten über expliziten Aufruf der Methode:
  43. $view = new Zend_View();
  44. $view->setLfiProtection(false);
  45. ]]></programlisting>
  46. </sect3>
  47. </sect2>
  48. </sect1>
  49. <!--
  50. vim:se ts=4 sw=4 et:
  51. -->