Mengamankan SharePoint daftar/dokumen perpustakaan Views tampaknya (semacam) Mungkin dengan jQuery

Ini adalah posting lain dalam saya terus-menerus seri bagaimana menggunakan jQuery dengan SharePoint.
Jika Anda ingin mempelajari lebih lanjut tentang jQuery, Saya sangat merekomendasikan: jQuery dalam tindakan oleh beruang Bibeault dan Yehuda Katz.

Salah satu hal pertama yang saya pikir, begitu aku mulai bermain-main dengan jQuery, adalah apakah kita bisa menggunakannya untuk menjamin pandangan SharePoint. Jawabannya adalah "tidak" (atau setidaknya, Saya tidak mengklaim mungkin). Namun, memang mungkin untuk membuat sulit bagi orang untuk melihat pandangan tertentu.

Saya mulai dengan lingkungan sandbox saya ketika bekerja pada ini. Saya menulis tentang lingkungan di sini: Cepat dan mudah: Membuat Your Own jQuery Sandbox untuk SharePoint.

Untuk "aman" pandangan, Ikuti langkah-langkah:

  1. Membuat tampilan yang Anda inginkan untuk mengamankan. Saya melakukan itu dan menyebutnya "Dijamin View".

    Ini adalah apa yang tampak seperti ketika itu tidak "aman":

    image

  2. Menambahkan bagian web content editor untuk Lihat halaman menggunakan trik yang dijelaskan dalam artikel sandbox (yaitu. Tambahkan "tampilan halaman = bersama&ToolPaneView = 2" ke URL).
  3. Mengetahui _spUserId SharePoint Anda dengan mengikuti langkah-langkah ini gila, percaya atau tidak:
    1. Login ke lingkungan SharePoint Anda.
    2. Bidang alamat web browser, jenis: "javascript:peringatan(_spUserId").
    3. Mencatat hasil (ini adalah "13" dalam kasus saya).

      image

  4. Menambahkan javascript berikut untuk Anda CEWP dalam kode tampilan:

    <jenis script ="text/javascript"
        src =".. /.. /jQuery Library/jQuery-1.3.2.min.js">
    </script>
    
    <script type ="text/javascript">
      $(fungsi() {
    
        peringatan(_spUserId);
    
        var theSecuredView = $(' iframe[FilterLink * = 20View % aman]');
    
        Jika ((theSecuredView.length > 0) && (_spUserId == 13))
          $(' iframe[FilterLink * = 20View % aman]').orangtua().orangtua().orangtua().HTML("<TR bgcolor = merah><TD>Tidak ada pemandangan untuk Anda!</TD></TR>");
      });
    
    </script>
    

Saya telah menyertakan waspada bahwa(_spUserId) baris di sana untuk menunjukkan bagaimana hal ini tidak benar-benar "mengamankan" pandangan, tapi hanya membuatnya lebih sulit untuk melihat. Lebih lanjut tentang bahwa pada saat.

Pada dasarnya, jQuery adalah mencari iFrame pada halaman yang memiliki atribut yang berisi "Aman % 20View" dalam nilai. Setelah menemukan itu, kami memeriksa untuk melihat apakah pengguna saat ini "13". Jika, Kami berjalan DOM untuk <TR> Tag (yang aku tahu dengan melihat sumber dan melacak itu) dan kemudian mengganti tag TR tersebut dengan pesan saya. Aku benar-benar tidak tahu bagaimana kuat ini (Aku sangat mencurigakan, Sebenarnya), Tapi itu berhasil di sandbox saya. Jika saya menemukan cara yang lebih baik, Aku akan blog tentang hal itu. Ini adalah hasil:

image

Saya klik tombol OK dan data diganti dengan pesan merah besar:

image

Seperti yang Anda kirim, jalan aku sudah menerapkan solusi "keamanan" ini adalah untuk memungkinkan bagian web untuk membuat sendiri. Setelah itu selesai, Aku menimpa isi dengan "tidak ada pandangan saya untuk Anda!"pesan.

Terlepas dari kenyataan bahwa itu tidak benar-benar "aman '" lihat, berpotensi berguna dan dengan beberapa pekerjaan pintar, akhirnya mungkin securable dalam pengertian yang lebih formal. Masalah mendasar adalah bahwa klien mendapatkan semua data dan kemudian, hanya setelah mendapat data, itu menghapuskan itu. Jika klien adalah mendapatkan data, pengguna pintar dapat mencegah jQuery berjalan sama sekali dan melihat apa yang dia ingin melihat.

Ada kekurangan lain. Pendekatan "keamanan" ini didasarkan dari _spUserId. Kami ingin untuk benar-benar aman didasarkan pada model keamanan SharePoint penuh, atau setidaknya oleh nama pengguna. Menjadi semakin sulit, tapi aku melihat barang-barang bagus yang ditulis pada subjek ini, Jadi aku berharap ada jawaban yang bagus untuk masalah.

Daftar dilihat sendiri harus dipangkas, Jika mungkin. Saya belum mencoba untuk mencari tahu. Aku menganggap itu mungkin, tetapi tidak benar-benar memecahkan masalah mendasar keamanan karena seseorang bisa masih ketikkan URL tampilan yang mereka inginkan (Jika mereka tahu). Namun, pemangkasan akal. Ini adalah fitur baik kegunaan dan membantu untuk mengaburkan hal. Jika pengguna akhir tidak tahu bahwa ada acara Lihat, mereka mungkin tidak akan mencoba untuk menggunakannya. Kadang-kadang, cukup baik.

Dengan keberuntungan, Saya akan memiliki lebih banyak untuk menulis tentang hal ini dari waktu ke waktu.

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Tinggalkan balasan

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai *