מבוא CORS למתחילים

תוהה מה זה CORS (שיתוף משאבים בין מוצא)?


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

https://pt.slideshare.net/atirekgupta/selenium-workshop-34820044

העתק של תרחיש זה מתרחש בתקשורת בין דפדפנים ושרתי אינטרנט, והוא נקרא מדיניות ממוצא זהה.

על פי MDN:

ה מדיניות ממוצא זהה הוא מנגנון אבטחה קריטי המגביל את האופן בו מסמך או סקריפט טעון ממקור אחד יכולים לקיים אינטראקציה עם משאב ממקור אחר. זה עוזר לבודד מסמכים שעלולים להזיק, ולהפחית וקטורי התקפה אפשריים.

מה זה CORS?

במקרה אמיתי, כאשר פעילי ביטחון נותנים כלל שתקשורת צריכה להתרחש רק בקרב פעילים כאמצעי ביטחון, זה דומה למדיניות ממוצא זהה. עם זאת, יתכנו מקרים שהם יצטרכו ליצור אינטראקציה עם העולם החיצון. או עם פעילי תלבושות ביטחון אחרות, כדי שזה יקרה, הם יכולים ליישם אמצעי ביטחון נוסף תאשר אותם פעילים. אימות זה יכול לבוא בדרכים שונות, בהתאם לפעילים המעורבים. במקרה של תקשורת באינטרנט, CORS הוא המנגנון שמאפשר לדפדפנים להשתמש בגישה למשאבים שהם במקור לא יוכלו מכיוון שהמשאב הוא ממוצא אחר.

שיתוף משאבים חוצה-מקור (CORS) הוא מנגנון המשתמש בכותרות HTTP נוספות כדי לומר לדפדפנים לתת יישום אינטרנט הפועל ממקור אחד, גישה למשאבים שנבחרו ממקור אחר.

דיברתי על מוצא לא פעם, ואתה בטח תוהה מה זה אומר. מקור מוגדר על ידי הפרוטוקול, התחום והיציאה של כתובת האתר. כאשר יש לך ממשק ה- API שלך במקור כמו https://api.geekflare.com:3001 והפרונטנד שלך בכתובת https://geekflare.com, אומרים שהמקורות שונים. במצב זה, תזדקק ל- CORS כדי לגשת למשאבים בשני הקצוות.

כאשר מתקבלות בקשות לשרת, הדפדפנים (הלקוח) והשרתים שולחים בקשות ותגובה, כותרות HTTP כלולות. בין כותרות אלה כלולות כותרות נוספות כדי למנוע מהדפדפן לחסום את התקשורת.

מדוע הדפדפן יחסום את התקשורת?

תכונות אבטחת הדפדפן שלו. היא תעשה זאת אם הבקשה מגיעה ממקור שונה מזה של הלקוח. הכותרות הנוספות הכלולות כתוצאה מ- CORS הן דרך לומר ללקוח שהוא יכול לעשות שימוש בתגובה שקיבלה.

כותרות CORS

אחת הכותרות המאובטחות שיכולות להיות תגובה או כותרת בקשה.

כותרות תגובה

אלה הכותרות שהשרת שולח בתגובה שלו.

  • בקרת גישה-אפשר-מקור: זה משמש לציון המקור המותר לגישה למשאב בשרת. ניתן לציין שרק בקשות ממקור מסוים מותרות – בקרת גישה-אפשר-מקור: https://geekflare.com, או שמקור לא משנה – בקרת גישה-מאפשרת-מקור: *.
  • כותרות של בקרת גישה – חשיפה:: כפי שהשם מרמז, זה מפרט את הכותרות שלדפדפן יש גישה.
  • בקרת גישה – גיל מקסימום:: זה מציין את משך הזמן שניתן לטמון במטמון בתגובה של בקשת preflight.
  • אישורי בקרת גישה – הרשות אישורים: זה מצביע על כך שהדפדפן יכול להשתמש בתגובה כאשר הבקשה הראשונית נעשתה עם אישור.
  • בקרות גישה-מאפשרות שיטות:: זה מציין את השיטות / השיטות שמותרות כאשר מנסים לגשת למשאב.
  • בקרת גישה – הכותרות מאפשרות:: זה מציין שניתן להשתמש בכותרות HTTP בבקשה.

להלן דוגמא כיצד תיראה התגובה

HTTP / 1.1 204 ללא תוכן
בקרת גישה-מאפשר-מקור: *
בקרת גישה – אפשר שיטות: GET, HEAD, PUT, PATCH, POST, DELETE
וארי: כותרות בקרת גישה-בקשה
בקרת גישה-אפשר כותרות: סוג תוכן, קבל
אורך תוכן: 0
תאריך: שבת, 16 בנובמבר 2019 11:41:08 GMT + 1
חיבור: לשמור על החיים

בקש כותרות

להלן הכותרות שעל בקשת הלקוח להכיל כדי להשתמש במנגנון CORS.

  • מקור: זה מציין את מקור בקשת הלקוח. כשאתה עובד עם חזית קדמית וכפוף, כאמור קודם, זה יהיה המארח של אפליקציית ה- Frontend שלך.
  • בקרת גישה-שיטת בקשה: זה משמש בבקשת preflight כדי לציין את שיטת HTTP שתשמש לביצוע הבקשה.
  • כותרות בקרת גישה-בקשות:: זה משמש בבקשת preflight כדי לציין את כותרות HTTP שישמשו לביצוע הבקשה..

להלן דוגמה כיצד ייראה בקשה

סלסול – i -X אפשרויות localhost: 3001 / api \
-H ‘בקרת גישה – שיטת בקשה: GET’ \
-H ‘בקרות גישה-בקשות-כותרות: סוג תוכן, קבל’ \
-מקור H: http: // localhost: 3000 ‘

בקשות להקלטה

https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

לאחר הזכרת פה ושם בקשות מקדימות, מה זה יכול להיות אומר?

בקשות להקלטה מתרחשות כאשר הלקוח נדרש לשלוח בקשת preflight לפני הבקשה הראשית. בקשת המקדים היא יותר א בדיקה כדי לקבוע אם השרת תומך בבקשה העיקרית שעומדת להיעשות. כאשר מתקבלת אישור חיובי, הבקשה הראשית נשלחת.

כאשר בקשה אינה בקשת preflight, היא נקראת א בקשה פשוטה.

יישום CORS

לרוב תרצו להגדיר דברים בחלק האחורי של היישום. היישום תלוי במסגרת שבה אתה משתמש. למדריך זה, נראה כיצד לעשות זאת ב- NodeJS ו- Rails.

פסי רכבת

אני ממליץ לך להשתמש ב- קורסי מדף פנינה. אז תצטרך להוסיף את זה לקובץ config / application.rb.

config.middleware.insert_before 0, Rack :: Cors do
אפשר לעשות
מקורות ‘*’
משאב ‘*’,
כותרות:: כל,
חשיפה:% i (לקוח uid מסוג אסימון תפוג גישה לאסימון),
שיטות:% i (קבל הודעה להצבת תיקון ראש מחיקת אפשרויות),
אישורים: נכון
סוף
סוף

NodeJS

ב- Node.js זה ייראה כך.

app.all (‘*’, (req, res, next) => {
res.header (‘בקרת גישה-אפשר-מקור’, ‘*’);
res.header (‘שיטות בקרת גישה – אפשר שיטות’, ‘PUT, GET, POST, DELETE, PATCH, OPTIONS HEAD’);
res.header (‘בקרת גישה-מאפשרים כותרות’, ‘*’);
res.header (‘בקרת גישה-אישור אישורים’, נכון);
הבא ();
});

בקטע הקוד אנו מגדירים את המקור, השיטות, הכותרות והתעודות שיש לאפשר לגישה למשאבים הזמינים בשרת שלנו. אתה יכול גם לבדוק סקרין המספק מודול כותרות אבטחה שישולב עם יישומי Ruby, PHP, Python, Java, Go, Node.JS. וכדי ליישם ב- Apache או Nginx, עיין במדריך זה.

סיכום

CORS מרפה את המדיניות כך שהדפדפן שלך יכול לגשת למשאבים אליהם תרצה. ההבנה של מה זה, מדוע זה חיוני, ואיך להגדיר את זה תסייע לכם להבין את הבעיות העומדות בפניכם בעת בניית יישומי האינטרנט שלכם..

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map