2
0

Zend_View-Migration.xml 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15617 -->
  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
  16. <classname>Zend_View::render()</classname> Methode existiert. Vor 1.7.5, erlaubte die
  17. Methode standardmäßig, die Fähigkeit View Skripte zu spezifizieren die Schreibweisen für
  18. Eltern-Verzeichnisse enthalten (z.B. "../" oder "..\"). Das öffnet die Möglichkeit für
  19. eine LFI Attacke wenn ungefilterte Benutzereingaben an die <code>render()</code> Methode
  20. übergeben werden:
  21. </para>
  22. <programlisting language="php"><![CDATA[
  23. // Wobei $_GET['foobar'] = '../../../../etc/passwd'
  24. echo $view->render($_GET['foobar']); // LFI Einbruch
  25. ]]></programlisting>
  26. <para>
  27. <classname>Zend_View</classname> wirft jetzt standardmäßig eine Ausnahme wenn so ein
  28. View Skript angefragt wird.
  29. </para>
  30. <sect3 id="zend.view.migration.zf5748.disabling">
  31. <title>Ausschalten des LFI Schutzes für die render() Methode</title>
  32. <para>
  33. Da viele Entwickler gemeldet haben das Sie so eine Schreibweise in Ihren
  34. Anwendungen verwenden die <emphasis>nicht</emphasis> das Ergebnis einer
  35. Benutzereingabe sind, wurde ein spezielles Flag erstellt um das Deaktivieren des
  36. standardmäßigen Schutzes zu erlauben. Es gibt 2 Methoden um das Durchzuführen:
  37. Indem der 'lfiProtectionOn' Schlüssel in den Konstruktor-Optionen übergeben wird,
  38. oder durch den expliziten Aufruf der <code>setLfiProtection()</code> Methode.
  39. </para>
  40. <programlisting language="php"><![CDATA[
  41. // Ausschalten über den Konstruktor
  42. $view = new Zend_View(array('lfiProtectionOn' => false));
  43. // Ausschalten über expliziten Aufruf der Methode:
  44. $view = new Zend_View();
  45. $view->setLfiProtection(false);
  46. ]]></programlisting>
  47. </sect3>
  48. </sect2>
  49. </sect1>
  50. <!--
  51. vim:se ts=4 sw=4 et:
  52. -->