מאגרי מידע

כיצד ליצור ולהגדיר Machine Key ב-Web.Config ?


מבוא

אחת השגיאות הנפוצות במערכות ASP.NET היא: Validation of viewstate MAC failed. שגיאה זו מתרחשת בעיקר כאשר האפליקציה מתארחת בסביבת Web Farm או Cluster.

מהי השגיאה?

כאשר ASP.NET מאמת ViewState, הוא משתמש בחתימה קריפטוגרפית (MAC). אם האפליקציה רצה בסביבת Web Farm ואין תאימות בין מפתחות ה-MachineKey בשרתים השונים, האימות ייכשל ויתקבלו שגיאות מסוג זה.

הפתרון: הגדרת MachineKey

על מנת למנוע שגיאות אלו, יש להגדיר MachineKey בקובץ Web.config של האפליקציה. הגדרה זו מבטיחה שימוש באותם מפתחות קריפטוגרפיים בכל השרתים בסביבת ה-Web Farm.

דוגמה להגדרה

<configuration>
  <system.web>
    <machineKey 
      validationKey="E1F53135E559C253D0C7200BFD3D9DBFF0E3B0C7DA28C7A6A2E4F8E1DB9030BE"
      decryptionKey="AB1CDEF2345678901234567890ABCDEF1234567890ABCDEF"
      validation="SHA1" />
  </system.web>
</configuration>

    

הסבר על המפתחות

  • validationKey: משמש לחתימה קריפטוגרפית של ViewState ותהליכים נוספים.
  • decryptionKey: משמש להצפנת מידע רגיש כמו ViewState במצב מוצפן.
  • validation: קובע את האלגוריתם שבו נעשה שימוש לאימות. ניתן לבחור בין SHA1, AES או אחרים.

שיקולים חשובים

  • במידה והאפליקציה רצה ב-Web Farm, חובה להשתמש ב-MachineKey אחיד בכל השרתים.
  • בחרו מפתחות חזקים ואקראיים כדי להבטיח אבטחה מרבית.
  • שימוש באלגוריתמים מתקדמים כמו AES מומלץ במערכות חדשות.

בדיקת המערכת

לאחר הוספת ההגדרה, יש לבדוק שהאפליקציה פועלת כמצופה ואין שגיאות ViewState.

סיכום

הגדרת MachineKey היא חלק חיוני מהפעלת אפליקציות ASP.NET בסביבות Web Farm או Cluster. פעולה זו מונעת שגיאות אימות ViewState ומבטיחה תאימות בין השרתים השונים.




נכתב ע"י: LiveDns Ltd - אחסון אתרים  אחסון אתרים | תאריך: 13/05/2007
צפיות: 6837

חזרה לדף קודם