Pada komputer bersama, saya memiliki proyek QGIS yang menghubungkan ke database PostGIS yang berisi data saya. Jika pengguna ingin mengakses lapisan dari db, mereka harus memasukkan kredensial db, jadi tidak apa-apa.
Namun, saya sebelumnya telah login dan mengimpor layer dari db saya ke QGIS, dan memanipulasinya di QGIS (opsi styling berdasarkan meta-data, dll.) ... Siapa saja yang membuka proyek QGIS saya dapat melihat layer ini di QGIS, dan Karena itu dapat melihat data yang saya ingin dilindungi di db saya.
Apakah ada cara untuk melindungi proyek QGIS kata sandi saya?
Jawaban:
Taruhan terbaik Anda adalah tidak menyimpan kredensial db di proyek Anda (QGIS bahkan memberi Anda peringatan tentang potensi bahaya menyimpan kredensial Anda saat pertama kali menambahkan db).
Ketika Anda membuka proyek, Anda akan segera diminta kredensial Anda sebelum lapisan dari db diberikan.
Atau, Anda dapat:
Untuk menindaklanjuti bahaya menyimpan kredensial db Anda di QGIS, lihat pertanyaan ini . Ini sepele bagi siapa pun yang memiliki sedikit keingintahuan untuk melihat kredensial Anda dalam teks biasa.
sumber
username=foo password=bar
. Masalah yang sejauh ini dapat saya lihat adalah, database pengujian saya hanya menggunakan admin login / kata sandi, yaitu postgres / postgres. Setelah saya memutuskan untuk menggunakan tumpukan PostGIS / QGIS saya mengubah kata sandi. Meskipun tidak memasukkan nama pengguna / kata sandi yang benar di QGIS memblokir akses ke lapisan yang saya impor dengan kata sandi yang diperbarui, untuk beberapa alasan lapisan yang lebih lama (diimpor dengan konfigurasi postgres / postgres) tidak apa-apa karena kredensial disimpan dalam database.Ada pertanyaan serupa yang saya jawab di sini . Saya tidak melangkah terlalu jauh untuk menyiapkan ide tentang cara membuat formulir login, meskipun banyak logika ada di sana.
Jika Anda dapat mempercayai pengguna Anda untuk tidak mencoba masuk ke kode python Anda (atau kompilasi ke .exe untuk membuatnya lebih sulit), Anda bisa membuat skrip yang akan membuka proyek dengan lapisan yang dimuat di dalamnya, atau proyek kosong jika mereka tidak dapat menyediakan kredensial yang benar.
Ada pembicaraan untuk memeriksa informasi terhadap server untuk metode yang lebih aman, yang dapat Anda terapkan dalam instance Postgres / PostGIS Anda. Anda dapat menemukan sebagai pengganti sementara yang lebih sederhana untuk kode dalam nama pengguna Anda dan kata sandi hash ke dalam kode python Anda yang diumpankan ke API untuk verifikasi. Jadi biarkan server Anda melakukan perbandingan alih-alih kode desktop Anda. Menyimpan kata sandi hash Anda secara lokal bukanlah cara yang paling aman untuk melakukan sesuatu, tetapi tergantung pada algoritma hash Anda, ini bisa berpotensi sangat sulit untuk memecahkannya .
Pada akhirnya, mungkin lebih aman untuk hanya memasok kredensial Anda setiap kali kecuali Anda tahu pengguna lain tidak cukup paham komputer untuk mengetahui metode otomatis apa pun yang Anda berikan.
sumber