2
0

Zend_View-Migration.xml 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 17172 -->
  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
  8. <classname>Zend_View</classname> durchgeführt wurden, und sollte als Hilfe im Fall einer
  9. Migration von vorhergehenden 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. <methodname>Zend_View::render()</methodname> 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
  20. <methodname>render()</methodname> Methode ü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 <methodname>setLfiProtection()</methodname>
  39. Methode.
  40. </para>
  41. <programlisting language="php"><![CDATA[
  42. // Ausschalten über den Konstruktor
  43. $view = new Zend_View(array('lfiProtectionOn' => false));
  44. // Ausschalten über expliziten Aufruf der Methode:
  45. $view = new Zend_View();
  46. $view->setLfiProtection(false);
  47. ]]></programlisting>
  48. </sect3>
  49. </sect2>
  50. </sect1>
  51. <!--
  52. vim:se ts=4 sw=4 et:
  53. -->