<sect1 id="zend.view.migration">
    <title>עדכון מגרסאות קודמות</title>

    <para>
        פרק זה נועד בעיקר למידע אודות עדכון המערכות שלכם שנכתבו על גבי גרסאות קודמות של Zend Framework ודורשות עדכונים מסויימים כדי לעבוד עם הגרסאות החדשות.
    </para>

    <sect2 id="zend.view.migration.zf5748">
        <title>עדכון מגרסאות קודמות ל 1.7.5</title>

        <para>
            לפני גרסאת 1.7.5, צוות Zend Framework קבל דיווח על פירצת אבטחה אשר מאפשרת הוספת קובץ מקומי במתודת ה <code>Zend_View::render()</code>. הפרצה היא מסוג
            Local File Inclusion (LFI). בגרסאות קודמות ל 1.7.5 המתודה הזאת אפשרה כברירת מחדל להוסיף קבצי תצוגה אשר הכילו ציון לתקיה הראשית או תיקיה אחת מעלה
            לדוגמא "../" או "..\" .
            זה מאפשר לפרצת אבטחה מסוג LFI אם הקובץ תצוגה שאמור להיות מוצג מתקבל על ידי הזנת משתמש לדוגמא:
        </para>

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

        <para>
            כעת <code>Zend_View</code> כברירת מחדל תזרוק שגיאה על ידי חריגים ברגע שיהיה ניסיון בטעינת קובץ בדרך זו.
        </para>

        <sect3 id="zend.view.migration.zf5748.disabling">
            <title>ביטול הגנה מפני LFI במתודת ה render()</title>

            <para>
                מאחר וכמה מתכנתים דווחו שהם משתמשים בדרך זו של טעינה של קבצים אשר לא מתקבלים על ידי הזנת משתמשים, נוצר סימון מיוחד אשר מאפשר ביטול ההגנה זו כברירת מחדל.
                ישנם 2 דרכים לעשות זאת: על ידי העברת הפרמטר 'lfiProtectionOn' כשיוצרים את אובייקט התצוגה, או על ידי קריאה למתודת ה <code>setLfiProtection()</code> .
            </para>

            <programlisting role="php"><![CDATA[
// Disabling via constructor
$view = new Zend_View(array('lfiProtectionOn' => false));

// Disabling via exlicit method call:
$view = new Zend_View();
$view->setLfiProtection(false);
]]></programlisting>
        </sect3>
    </sect2>
</sect1>
<!--
vim:se ts=4 sw=4 et:
-->
