Ternyata mengubah mdb ke asp bisa menghalangi download adalah omong kosong. Gunakan Flashget untuk menguji unduh file data.asp dan simpan sebagai file data.mdb. Saya menemukan bahwa file tersebut utuh ketika dibuka dengan ACCESS! 1. Gunakan imajinasi Anda untuk mengubah nama file database
Namun, jika penyerang mendapatkan jalur ke database melalui metode pihak ketiga, dia dapat mengunduh database tersebut. Oleh karena itu kerahasiaannya minimal.
2. Ubah akhiran nama database menjadi ASA, ASP, dll.
Cara ini harus dikombinasikan dengan beberapa pengaturan, jika tidak, situasi di awal artikel ini akan terjadi.
(1) Bidang biner ditambahkan.
(2) Tambahkan <% atau %> ke file ini, IIS akan menguraikannya sesuai dengan sintaks ASP, dan kemudian melaporkan kesalahan 500, tentu saja tidak dapat diunduh. Namun, tidak ada gunanya menambahkan <% ke kolom teks atau memo di database, karena ACCESS akan memproses kontennya, dan konten tersebut akan ada di database sebagai <%, dan ini tidak valid! Metode yang benar adalah dengan menyimpan <% di bidang objek OLE, sehingga tujuan kita dapat tercapai.
Bagaimana cara melakukannya:
Pertama, gunakan notepad untuk membuat file teks baru dengan konten <%, beri nama acak dan simpan.
Selanjutnya, buka file database Anda dengan Access, buat tabel baru, beri nama acak, tambahkan bidang objek OLE ke tabel, lalu tambahkan catatan, dan masukkan file teks yang dibuat sebelumnya untuk melihat Catatan baru bernama "Paket Data".
3. Tambahkan # sebelum nama database
Cukup tambahkan # ke nama depan file database, lalu ubah alamat database di file koneksi database (seperti conn.asp). Prinsipnya saat mendownload, hanya bagian sebelum tanda # yang dapat dikenali, dan bagian berikut akan otomatis terhapus .mdb (dengan asumsi itu ada). Baik itu IE atau FLASHGET, yang Anda dapatkan adalah http://www.test.com/date/index.htm (index.asp, default.jsp, dll., dokumen beranda yang Anda atur di IIS)
Selain itu, mempertahankan beberapa spasi dalam nama file database juga memainkan peran serupa. Karena kekhasan protokol HTTP untuk resolusi alamat, spasi akan dikodekan sebagai %, seperti http://www.test.com/date/ 123;456.mdb , diunduh dari http://www.test.com/date/123%456.mdb. Direktori kami tidak memiliki file 123%456.mdb sama sekali, jadi pengunduhan tidak valid. Setelah modifikasi ini, meskipun Anda mengekspos alamat database, umumnya orang lain tidak akan dapat mendownloadnya!
4. Enkripsi basis data
Pertama, pilih Tools->Security->Encrypt/Decrypt Database, pilih database (misalnya: Employee.mdb), lalu klik OK. Kemudian akan muncul jendela untuk menyimpan database setelah enkripsi, dan simpan sebagai: Employee1. mdb. Kemudian Employee.mdb akan dikodekan dan kemudian disimpan sebagai Employee1.mdb. Perlu dicatat bahwa tindakan di atas tidak menetapkan kata sandi untuk database, tetapi hanya mengkodekan file database Lihat isi file database.
Selanjutnya, kita mengenkripsi database. Pertama, buka karyawan1.mdb yang dikodekan. Saat membuka, pilih mode eksklusif. Kemudian pilih Tools->Security->Set Database Password dari menu, lalu masukkan kata sandi. Dengan cara ini, meskipun orang lain mendapatkan file Employee1.mdb, dia tidak dapat melihat Employee1.mdb tanpa kata sandi.
Setelah enkripsi, Anda perlu mengubah halaman koneksi database, seperti:
conn.open driver={microsoft access driver (*.mdb)};uid=admin;pwd=kata sandi basis data;dbq=jalur basis data
Setelah modifikasi ini, meskipun database sudah diunduh, orang lain tidak dapat membukanya (asalkan kata sandi di halaman koneksi database Anda belum bocor)
Namun perlu dicatat bahwa karena mekanisme enkripsi database Access relatif sederhana, meskipun kata sandi telah ditetapkan, dekripsi menjadi mudah. Sistem database membentuk string terenkripsi dengan meng-XOR kata sandi yang dimasukkan oleh pengguna dengan kunci tetap, dan menyimpannya di area file *.mdb mulai dari alamat &H42. Jadi seorang programmer yang baik dapat dengan mudah membuat program kecil dengan puluhan baris untuk dengan mudah mendapatkan kata sandi dari database Access apa pun. Oleh karena itu, selama database diunduh, keamanan informasinya masih belum diketahui.
5. Tempatkan database di luar direktori WEB atau tempatkan file koneksi database di direktori virtual lainnya
Jika direktori WEB Anda adalah e:/webroot, Anda dapat meletakkan database di folder e:/data, dan mengubah alamat koneksi database pada halaman koneksi database di e:/webroot menjadi: ../data/bentuk nama database, supaya databasenya bisa dipanggil normal, tapi tidak bisa didownload karena tidak ada di direktori WEB! Metode ini umumnya tidak cocok untuk pengguna yang membeli ruang virtual.
6. Gunakan sumber data ODBC.
Pada pemrograman seperti ASP, jika memungkinkan sebaiknya usahakan menggunakan sumber data ODBC dan jangan menuliskan nama database pada program, jika tidak maka nama database akan hilang beserta kerahasiaan kode sumber ASP = Server.MapPath(. ./123/abc/asfadf.mdb )
conn.open driver={Microsoft Access Driver (*.mdb)};dbq=& DBPath
Terlihat bahwa betapapun anehnya nama database, tidak peduli seberapa dalam direktori tersembunyinya, setelah kode sumber ASP disusupi, ia dapat dengan mudah diunduh. Jika Anda menggunakan sumber data ODBC, tidak akan ada masalah seperti itu: conn.open nama ODBC-DSN, tetapi ini lebih mengganggu. Jika Anda memindahkan direktori, Anda harus mengatur ulang sumber data Bab 7. 8 metode!
7. Tambahkan pemetaan nama database yang diperluas seperti MDB
Metode ini dicapai dengan mengubah pengaturan IIS. Cocok untuk teman yang memiliki kontrol IIS, namun tidak cocok untuk pengguna yang membeli host virtual (kecuali administrator telah mengaturnya). Menurut saya cara ini adalah yang terbaik saat ini. Hanya dengan satu perubahan, seluruh database situs dapat dicegah agar tidak diunduh. Pengunduhan dapat dicegah meskipun alamat target terekspos tanpa mengubah kode.
Kami menambahkan penguraian aplikasi dari file .mdb di Properti IIS---Direktori Rumah---Konfigurasi---Pemetaan---Ekstensi Aplikasi. Perhatikan bahwa DLL (atau EXE, dll) yang dipilih di sini sepertinya tidak sembarangan. Jika pilihannya tidak sesuai, file MDB masih dapat diunduh. Perhatikan bahwa sebaiknya jangan memilih asp.dll, dll. Anda dapat mengujinya sendiri
Setelah modifikasi ini, unduh database seperti: http://www.test.com/data/dvbbs6.mdb. Akan muncul (kesalahan seperti 404 atau 500)
8: Keuntungan menggunakan .net
Mu Niao dari Dongwang telah menulis alat anti-hotlink WBAL untuk mencegah pengunduhan file secara ilegal. Untuk detailnya, silakan masuk ke http://www.9seek.com/WBAL/;
Namun, itu hanya mencegah pengunduhan non-lokal dan tidak memiliki fungsi untuk benar-benar mencegah pengunduhan basis data. Namun cara ini hampir sama dengan cara 5. Kamu bisa memodifikasi file .NET agar tidak bisa diunduh secara lokal!
Di antara metode ini, hanya metode ke-7 dan ke-8 yang dapat diubah secara seragam. Setelah memodifikasi konfigurasi satu kali, database seluruh situs dapat dicegah agar tidak diunduh. Beberapa metode lainnya memerlukan modifikasi masing-masing nama database dan file koneksi lebih merepotkan, tapi untuk teman virtual Host hanya bisa melakukan ini!
Faktanya, metode keenam seharusnya merupakan perpanjangan dari metode kelima, yang dapat mencapai fungsi khusus. Namun, untuk host yang tidak mendukung .net atau takut dengan pengaturan yang merepotkan, lebih baik menggunakan metode kelima secara langsung, dan metode kelima. metode keenam digunakan secara default. Metode, Anda masih dapat mempublikasikan dengan menyalin dan menghubungkan ke forum atau buku tamu dari host yang sama, lalu klik untuk mengunduh (karena halaman referensi tersebut berasal dari host yang sama)
9. Gunakan pengaturan izin file partisi NTFS (oleh percyboy)
Kita sudah tahu bahwa ASP.NET menggunakan ADO.NET untuk mengakses database, dan database Access - salah satu database low-end yang paling umum digunakan - dapat diakses melalui koneksi OleDb. Artikel ini membahas beberapa petunjuk kesalahan yang mungkin dilihat di ASP.NET. Terlihat bahwa file database yang dibuat oleh Access 2000 dan Access XP akan memiliki petunjuk kesalahan yang berbeda ketika terjadi kesalahan akses. Semoga ini bisa membantu semua orang. Poin penting lainnya adalah saya berharap melalui artikel ini, semua orang memiliki pemahaman baru tentang pengaturan izin NTFS file database Access di ASP.NET.