Untuk mengakses layanan aman (berbasis token atau kredensial), Esri merekomendasikan menggunakan file proxy ( contoh .net github ). Saat merutekan permintaan melalui proxy, Anda dapat meminta layanan aman atas nama klien tanpa memaparkan kredensial Anda. Anda dapat menentukan properti yang dipanggil allowedReferers
dan menetapkan daftar URL rujukan yang akan digunakan oleh proxy. Pada dasarnya, proksi tidak akan membuat permintaan untuk merujuk URL yang tidak ditentukan. Jika diatur ke '*'
, permintaan rujukan apa pun akan diproses.
Masalahnya adalah; tajuk yang meminta dipalsukan dengan mudah oleh peretas hanya dengan menyetel properti HTTP Referer palsu . Dalam situasi ini, mereka dapat mengakses layanan aman dengan merutekan semua permintaan mereka melalui proxy dan mengatur header referer ke alamat yang valid.
Saya mencari rekomendasi tentang cara terbaik untuk mengatasi masalah ini. Ada rekomendasi?
sumber
agstoken
kunci. Ini tidak menambah banyak keamanan ekstra tetapi setidaknya token tidak muncul dalam string kueri.Jawaban:
Saya meng-host proxy Java di Apache Tomcat yang menyediakan halaman login. Proxy ArcGIS berjalan dalam konteks aplikasi yang sama dengan halaman login. Dengan cara ini, pengguna saya mendapatkan akses dengan kredensial yang disimpan dalam database yang terpisah dan aman. Tomcat melakukan manajemen sesi biasa sementara proxy ArcGIS yang sedikit dimodifikasi menangani kredensial dan token ArcGIS yang tersembunyi. Semua ini dilakukan melalui HTTPS.
Hasilnya adalah:
sumber
Saya pikir kalimat ini adalah kuncinya. Ketika proksi mengautentikasi ke server GIS, apakah proksi dikonfigurasi dengan kredensial? Jika demikian, dan kredensial tersebut memiliki akses ke layanan peta yang diminta, maka itu tampaknya "berfungsi sebagaimana dimaksud".
Jika proxy menyimpan / melewati kredensial, maka proxy lebih mementingkan keamanan kredensial daripada menjaga keamanan data. Pikirkan situs intranet perusahaan yang menampilkan data peta dari layanan peta aman.
Apakah pernyataan di atas berarti penyerang luar dapat mencapai proxy Anda secara langsung? Jika demikian, Anda harus lebih khawatir daripada tajuk HTTP palsu.
Apakah pengguna, proxy, dan server GIS semuanya ada di dalam jaringan Anda, atau apakah pengguna menggunakan proxy untuk terhubung ke layanan GIS di luar jaringan? Mengetahui beberapa detail pada topologi jaringan Anda mungkin dapat membantu Anda mendapatkan jawaban yang lebih baik.
sunting: Jika Anda memiliki aplikasi web publik yang mengambil sumber daya dari server GIS aman di dalam jaringan, maka Anda mungkin menginginkan proksi terbalik dan bukan proksi maju.
sumber