מבוא לתגי אבטחה באביב

1. סקירה כללית

במדריך זה, נסתכל על Spring Security Taglibs, המספק תמיכה בסיסית לגישה למידע אבטחה ולהחלת מגבלות אבטחה ב- JSP.

2. תלות Maven

קודם כל, בואו נוסיף את התלות האביבית-ביטחונית-תגלית שלנו pom.xml:

 org.springframework.security spring-security-taglibs 5.2.2.RELEASE 

3. הכרזת התגים

כעת, לפני שנוכל להשתמש בתגיות, עלינו לייבא את התגית בראש קובץ ה- JSP שלנו:

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

4. ה לְאַשֵׁר תָג

4.1. גִישָׁה ביטויים

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

כאשר זה המקרה, אנו יכולים להשתמש ב- לְאַשֵׁר תָג:

 בתחברות 

יתר על כן, אנו יכולים לבדוק אם למשתמש מאומת תפקידים ספציפיים:

 נהל משתמשים 

ונוכל להשתמש בכל ביטוי של Spring Security כערך שלנו גִישָׁה:

  • hasAnyRole ('ADMIN', 'USER') החזרות נָכוֹן אם למשתמש הנוכחי יש אחד מהתפקידים הרשומים
  • הוא אנונימי () החזרות נָכוֹן אם המנהל הנוכחי הוא משתמש אנונימי
  • isRememberMe () החזרות נָכוֹן אם המנהל הנוכחי הוא משתמש זכור אותי
  • isFullyAuthenticated () החזרות נָכוֹן אם המשתמש מאומת ואינו אנונימי ולא משתמש בזכור אותי

4.2. url

מלבד זאת, אנו יכולים לבדוק אם משתמשים מורשים לשלוח בקשות לכתובות האתרים המסוימות:

 נהל משתמשים 

4.3. ניפוי באגים

יתכנו מקרים בהם אנו רוצים שליטה רבה יותר בממשק המשתמש, למשל בתרחישים לבדיקה. במקום ש- Spring Security ידלג על טיוח החלקים הלא מורשים הללו, נוכל להגדיר spring.security.disableUISecurity=נָכוֹן ב, נגיד, שלנו application.properties קוֹבֶץ.

כשאנחנו עושים זאת, לְאַשֵׁר תג לא יסתיר את תוכנו. במקום זאת, הוא יעטוף את התוכן עם במקום זאת. לאחר מכן, אנו יכולים להתאים את העיבוד בעצמנו באמצעות CSS כלשהו.

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

5. ה אימות תָג

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

לשם כך אנו משתמשים ב- אימות תָג:

 ברוך שובך, 

6. ה csrfInput תָג

אני מקווה שהגנת ה- CSRF של Spring Security מופעלת באפליקציה שלנו!

אם כן, אז Spring Security כבר מכניס קלט טופס מוסתר של CSRF תגים עבורנו.

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

  שדה טקסט:

אם הגנת CSRF אינה מופעלת, תג זה לא מפיק דבר.

7. ה csrfMetaTags תָג

אוֹ, אם אנחנו רוצים לגשת לאסימון CSRF ב- Javascript, כנראה שנרצה להכניס את האסימון כתג מטא.

אנחנו יכולים לעשות זאת עם csrfMetaTags תָג:

  JavaScript עם הגנת CSRF var csrfParameter = $ ("meta [name = '_ csrf_parameter']"). Attr ("content"); var csrfHeader = $ ("meta [name = '_ csrf_header']"). attr ("תוכן"); var csrfToken = $ ("meta [name = '_ csrf']"). attr ("תוכן"); ... 

שוב, אם הגנת CSRF אינה מופעלת, תג זה לא יפיק שום דבר.

8. מסקנה

במאמר מהיר זה, התמקדנו בכמה מקרי שימוש נפוצים בתגובה של Spring Security.

וכפי שלמדנו, הם שימושיים מאוד לעיבוד תוכן JSP לאימות ותוכן הרשאות.

את כל הדוגמאות, כמו תמיד, ניתן למצוא באתר Github.


$config[zx-auto] not found$config[zx-overlay] not found