אבטחת תצוגות של ספריית SharePoint רשימה/תיעוד נראה (מעין) האפשר עם jQuery

. זה עוד פוסט ב שלי סדרת מתמשך כיצד להשתמש jQuery עם SharePoint.
אם ברצונך ללמוד עוד אודות jQuery, אני ממליץ בחום: jQuery בפעולה על ידי דוב Bibeault יהודה כץ.

אחד הדברים הראשונים חשבתי, לאחר שהתחלתי לשחק עם jQuery, היה אם. נוכל להשתמש בזה כדי לאבטח תצוגה של SharePoint. התשובה היא "לא" (או לפחות, אני לא יכול להגיד שזה אפשרי). עם זאת, זה בהחלט אפשרי לעשות את זה קשה לאנשים לראות תצוגה מסוימת.

התחלתי עם הסביבה בארגז החול שלי עובדים על זה. כתבתי על הסביבה.: מהיר וקל: ליצור שלך jQuery ארגז חול עבור SharePoint.

"להבטיח" נוף, בצע את השלבים הבאים:

  1. יצירת תצוגה שברצונך לאבטח. אני עשיתי את זה וכינה אותו "View מאובטח".

    . זה מה שזה נראה כאשר היא לא "מאובטחת":

    image

  2. להוסיף web part של עורך תוכן לדף של התצוגה באמצעות החוכמה המתוארת במאמר ארגז חול (כלומר. להוסיף "הגירסאות = משותף&ToolPaneView = 2 "לכתובת ה-URL).
  3. להבין את _spUserId של SharePoint על-ידי ביצוע השלבים הבאים מטורף, תאמין או לא:
    1. להיכנס לתוך סביבת SharePoint שלך.
    2. בשדה הכתובת של דפדפן האינטרנט, סוג: "javascript:התראה(_spUserId").
    3. להקליט את התוצאה (. זה "13" במקרה שלי).

      image

  4. להוסיף את ה-javascript הבאה שלך CEWP בתצוגת code:

    <סקריפט סוג ="טקסט/javascript"
        src =".. /.. /jQuery Library/jquery-1.3.2.min.js">
    </קובץ script>
    
    <סקריפט סוג ="טקסט/javascript">
      $(פונקציה() {
    
        התראה(_spUserId);
    
        var theSecuredView = $(' iframe[FilterLink * = 20View % מאובטחת]');
    
        אם ((theSecuredView.length > 0) && (_spUserId = = 13))
          $(' iframe[FilterLink * = 20View % מאובטחת]').האב().האב().האב().html("<צבע רקע tr = אדום><td>אין מבט בשבילך!</td></. tr>");
      });
    
    </קובץ script>
    

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

בעיקרון, jQuery מחפש iFrame בדף שיש לו תכונה המכילה "מאובטחת % 20View" בהערך שלו. ברגע שהוא מוצא את זה, נוכל לבדוק אם המשתמש הנוכחי הוא "13". אם זה, נעלה DOM <. TR> תג (מה שהבנתי על-ידי הצגת המקור לבין לעקוב אחריו) ולאחר מכן החלפת התג TR עם ההודעה שלי. אני באמת לא יודע. כמה חזק זה (אני חשדן מאד, למעשה), אבל זה עבד בארגז חול שלי. אם אמצא דרך טובה יותר, I'll שאכתוב על זה. זו התוצאה:

image

לחץ על לחצן אישור, הנתונים מוחלפים מסר אדום גדול:

image

כפי שאתה יכול להגיד, הדרך יש ליישם פתרון זה "אבטחה" היא לאפשר ה-web part להבהיר את עצמה. לאחר שיסיים, להחליף את התוכן שלה עם "אין התפיסה שלי בשבילך!"הודעה.

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

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

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

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

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

תגיות טכנורטי: ,,

del.icio.us תגיות: ,,

תשאיר הודעה

כתובת האימייל שלך לא תפורסם. שדות חובה מסומנים *