Pag-secure ng SharePoint Listahan / Dokumento Views Library tila (uri ng) Posibleng may jQuery

Ito ay isa pang post sa aking on-pagpunta serye kung paano gamitin jQuery may SharePoint.
Kung gusto mong matuto nang higit pa tungkol sa jQuery, Ko lubos na inirerekomenda: jQuery sa Aksyon sa pamamagitan ng Bear Bibeault at Yehuda Katz.

Ang isa sa mga unang bagay na naisip ko, sa sandaling sinimulan ko upang i-play sa paligid na may jQuery, was whether we could use it to secure a SharePoint view. The answer is “no” (o hindi bababa sa, Hindi ko na nagke-claim posible). Gayunman, it is certainly possible to make it difficult for people to see a particular view.

I started with my sandbox environment when working on this. I wrote about that environment here: Mabilis at madali: Lumikha ng Iyong Sariling jQuery Sandbox para sa SharePoint.

Upang "secure ang" ng tanawin, sundin ang mga hakbang na ito:

  1. Create a view you want to secure. I did that and called it “Secured View”.

    Ito ay kung ano ang mukhang kapag hindi ito "secure":

    image

  2. Magdagdag ng nilalaman editor web bahagi sa pahina sa view gamit ang kahanga-hangang gawa na inilarawan sa mga artikulo sandbox (i.e. idagdag ang "PageView = Naibahaging&ToolPaneView = 2 "sa URL).
  3. Figure out your SharePoint _spUserId by following these crazy steps, Naniniwala o hindi:
    1. Mag-log in sa iyong SharePoint kapaligiran.
    2. Sa patlang ng address sa web browser, uri: "Javascript:alerto(_spUserId ").
    3. Itala ang resulta (ito ay "13" sa aking mga kaso).

      image

  4. Idagdag ang sumusunod na javascript sa iyong CEWP sa code pagtingin:

    <iskrip
        "text/javascript"
        SRC ="../../jQuery%20Library/jquery-1.3.2.min.js">
    </script>
    
    <script type ="text/javascript">
      $(tungkulin() {
    
        alerto(_spUserId);
    
        var theSecuredView = $('Iframe[FilterLink * = Secured% 20View]');
    
        kung ((theSecuredView.length > 0) && (_spUserId == 13))
          $('Iframe[FilterLink * = Secured% 20View]').magulang().magulang().magulang().html("<tr bgcolor = red><td>Walang mga view para sa iyo!</td></tr>");
      });
    
    </script>
    

Nagsama ako na alerto(_spUserId) linya sa doon upang ipakita kung paano ito ay hindi talagang isang "pag-secure" ng tanawin, but simply making it more difficult to see. More on that in a moment.

Talaga, jQuery is looking for an iFrame on the page who has an attribute that contains “Secured%20View” in its value. Once it finds it, we check to see if the current user is “13”. If it is, lakad namin up ang DOM sa isang <TR> tag (kung saan ako may korte out sa pamamagitan ng pagtingin sa source at ang pagsunod nito) at pagkatapos ay pinapalitan na tr tag sa aking mga mensahe. Ko talagang hindi alam kung paano malakas na ito ay (Ako'y sobrang kahina-hinala, sa katunayan), but it worked in my sandbox. If I find a better way, Kukunin ko blog ang tungkol dito. Ito ang resulta:

image

I-click ang pindutan na OK at ang data ay pinalitan ng isang malaking pulang mensahe:

image

Bilang maaari mong sabihin, the way I’ve implement this “security” solution is to allow the web part to render itself. After it finishes, I-overwrite ang nilalaman nito sa aking mga "Walang view para sa iyo!"Mensahe.

Sa kabila ng katotohanan na ito ay hindi talagang isang "secured '" view, ito ay potensyal na kapaki-pakinabang at may ilang matalino work, it may eventually be securable in a more formal sense. The fundamental issue is that the client is getting all the data and then, lamang matapos na ito ay nakakakuha ng data, it wipes it out. If the client is getting the data, isang matalino gumagamit mapipigilan ang jQuery mula sa pagtakbo sa lahat at makita kung ano siya / siya ay nais na makita.

There are other drawbacks. This “security” approach is based off a _spUserId. We’d want to really secure based on the full SharePoint security model, or at least by user name. That becomes progressively harder, ngunit nakikita ko ang ilang mga magagandang bagay-bagay na nakasulat sa paksang ito, kaya ako ay may pag-asa mayroong isang magandang sagot sa problema na.

Ang listahan ng mga tanawin ng kanilang sarili dapat mabawasan ng, kung posible. I haven’t tried to figure that out. I assume it’s possible, ngunit hindi talagang malutas ang pangunahing mga isyu ng seguridad dahil ang isang tao ay maaari pa ring i-type lamang ang URL ng view gusto nila (kung alam nila ito). Gayunman, trimming makes sense. It’s a good usability feature and it helps to obfuscate things. If an end user doesn’t know that the view event exists, they probably won’t try to use it. Kung minsan, na mabuti sapat.

Gamit ang swerte, Kukunin ko magkaroon ng higit na magsulat sa paksang ito sa paglipas ng panahon.

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

-Iwan ng sagot

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan *