תצוגות מאובטחות עם פרמטרים ב-Cloud SQL ל-PostgreSQL מספקות אבטחת מידע ובקרת גישה לשורות לאפליקציות, תוך תמיכה ב-SQL. התצוגות האלה תומכות בשליפת ערכי נתונים – התהליך של אחזור פריטי נתונים ספציפיים מעמודות – והן עוזרות להגן מפני התקפות הזרקת הנחיות. תצוגות מאובטחות עם פרמטרים עוזרות לוודא שמשתמשי הקצה יכולים לראות רק את הנתונים שאמורה להיות להם גישה אליהם.
תצוגות עם פרמטרים הן הרחבה של תצוגות PostgreSQL, שמאפשרות להשתמש בהגדרות של תצוגות בפרמטרים של תצוגות עם שמות ספציפיים לאפליקציה. היכולת הזו מספקת ממשק שמקבל שאילתה וערכים לפרמטרים עם שמות. התצוגות מריצות את השאילתה עם הערכים האלה, שמשמשים לאורך כל ההרצה של השאילתה.
דוגמה לתצוגה מאובטחת עם פרמטרים:
CREATE VIEW user_specific_items WITH (security_barrier) AS
SELECT item_id, item_name, description
FROM items t
WHERE owner_id = $@app_user_id;
אפשר להריץ שאילתות על התצוגות באמצעות הפונקציה execute_parameterized_query או באמצעות ההצהרה EXECUTE .. WITH VIEW PARAMETERS.
תרחישים לדוגמה
תצוגות מאובטחות עם פרמטרים מספקות אבטחת נתונים ברמת מסד הנתונים מפני שאילתות אד-הוק ממקורות לא מהימנים, כמו שאילתות שתורגמו משאילתות בשפה טבעית. לדוגמה, אפשר להשתמש בתצוגות מאובטחות עם פרמטרים כדי לספק אבטחת מידע לאפליקציות שבהן משתמשים יכולים להנפיק שאילתות בשפה טבעית, כמו "הצגת ההזמנות שלי".
אתם יכולים להשתמש בתצוגות מאובטחות עם פרמטרים כדי להחיל את הדרישות הבאות על האופן שבו Cloud SQL ל-PostgreSQL מבצע את השאילתה הזו:
- השאילתה קוראת רק את האובייקטים והעמודות במסד הנתונים שציינתם בתצוגות המאובטחות עם הפרמטרים של מסד הנתונים.
- השאילתה קוראת רק את שורות מסד הנתונים שמשויכות למשתמש ששלח את השאילתה. לשורות שמוחזרות יש קשר נתונים לשורת הטבלה של המשתמש.
מידע נוסף על הגדרת אבטחה ובקרת גישה זמין במאמר ניהול אבטחת נתוני האפליקציה באמצעות תצוגות מאובטחות עם פרמטרים.
תצוגות מאובטחות עם פרמטרים עוזרות לצמצם סיכוני אבטחה שמתרחשים כשמאפשרים למשתמשי קצה להריץ שאילתות לא מהימנות, כמו שאילתות בשפה טבעית, בטבלת מסד הנתונים. סיכוני האבטחה כוללים את הדברים הבאים:
- משתמשים יכולים לשלוח מתקפות של הזרקת הנחיות ולנסות לתמרן את המודל הבסיסי כדי לחשוף את כל הנתונים שהאפליקציה יכולה לגשת אליהם.
- מודל השפה הטבעית ל-SQL (NL2SQL) עשוי ליצור שאילתות SQL שההיקף שלהן רחב יותר ממה שמתאים מסיבות של אבטחת מידע. סיכון האבטחה הזה עלול לחשוף מידע אישי רגיש בתגובה לשאילתות משתמשים, גם אם הכוונות שלהם טובות.
בעזרת תצוגות מאובטחות עם פרמטרים, אתם יכולים להגדיר את הטבלאות והעמודות ששאילתות לא מהימנות יכולות לשלוף מהן נתונים. התצוגות האלה מאפשרות להגביל את טווח השורות שזמינות למשתמש יחיד באפליקציה. ההגבלות האלה מאפשרות לכם גם לשלוט באופן הדוק בנתונים שמשתמשי האפליקציה יכולים לראות באמצעות שאילתות בשפה טבעית, בלי קשר לניסוח השאילתות.
אבטחת מידע
תצוגות מאובטחות עם פרמטרים מספקות למפתחי אפליקציות אבטחת מידע ובקרת גישה לשורות באמצעות השיטות הבאות:
- תצוגות שנוצרו באמצעות פסקה
WITH (security barrier)מספקות אבטחה ברמת השורה על ידי מניעת העברת ערכים משורות לפונקציות ולאופרטורים שנבחרו בזדון, עד שהתצוגה מסיימת את העבודה שלה. מידע נוסף על הסעיף הזה זמין במאמר כללים והרשאות.WITH (security barrier) - פרמטרים של תצוגה עם שם מאפשרים תצוגה מוגבלת של מסד הנתונים עם פרמטרים של ערכים. הערכים מסופקים על ידי האפליקציה על סמך אבטחה ברמת האפליקציה, כמו אימות משתמשי קצה.
- אכיפה של הגבלות נוספות על שאילתות שמאפשרות גישה לתצוגות עם פרמטרים, כדי למנוע מתקפות נגד בדיקות בריחה בתצוגות על סמך ערכי הפרמטרים שצוינו. מידע נוסף זמין במאמר בנושא הגבלות מחייבות על שאילתות.
מגבלות
כדי להשתמש בתצוגות מאובטחות עם פרמטרים, צריך להפעיל את
cloudsql.enable_parameterized_viewsדגל מסד הנתונים במכונת Cloud SQL, מה שמחייב הפעלה מחדש של מסד הנתונים.צריך ליצור את התוסף
parameterized_viewsבכל מסד נתונים שבו רוצים ליצור תצוגות מאובטחות עם פרמטרים.אם יש הפניה לתצוגה עם פרמטרים בפונקציה בהגדרת המשתמש שמופעלת באמצעות אחד מממשקי ה-API שמשמשים בתצוגות מאובטחות עם פרמטרים, מתרחשת שגיאה. צריך להפנות ישירות לתצוגה עם הפרמטרים בשאילתת האב.
המאמרים הבאים
- שימוש בתצוגות מאובטחות עם פרמטרים
- אבטחה ושליטה בגישה לנתוני אפליקציות באמצעות תצוגות מאובטחות עם פרמטרים (הדרכה)