Bagaimana cara mencegah serangan hacker dengan lebih baik, saya ingin memberikan pendapat pribadi saya! Pertama, program gratis tidak boleh digunakan secara gratis. Karena Anda dapat membagikan kode aslinya, penyerang juga dapat menganalisis kode tersebut. Jika Anda memperhatikan detailnya, keamanan situs Anda akan meningkat pesat. Bahkan jika kerentanan seperti SQL Injection terjadi, penyerang tidak mungkin langsung menghapus situs Anda.
Karena kenyamanan dan kemudahan penggunaan ASP, semakin banyak program latar belakang situs web yang menggunakan bahasa skrip ASP. Namun, karena ASP sendiri memiliki beberapa kerentanan keamanan, peretas dapat memanfaatkannya jika tidak hati-hati. Faktanya, keamanan bukan hanya masalah administrator jaringan, pemrogram juga harus memperhatikan detail keamanan tertentu dan mengembangkan kebiasaan keamanan yang baik, jika tidak maka akan membawa risiko keamanan yang besar pada situs web mereka. Saat ini, sebagian besar program ASP di situs web memiliki satu jenis celah keamanan, namun jika Anda memperhatikan saat menulis program, hal tersebut masih dapat dihindari.
1. Nama pengguna dan kata sandi di-crack
Prinsip serangan: Nama pengguna dan kata sandi sering kali menjadi hal yang paling diminati oleh peretas. Jika kode sumber dilihat dengan cara tertentu, konsekuensinya akan serius.
Keterampilan pencegahan: Program yang melibatkan nama pengguna dan kata sandi sebaiknya dienkapsulasi di sisi server dan muncul sesedikit mungkin dalam file ASP. Nama pengguna dan kata sandi yang melibatkan koneksi database harus diberikan izin minimum. Username dan password yang sering muncul dapat ditulis dalam file include yang tersembunyi. Jika melibatkan koneksi ke database, idealnya hanya memberikan izin untuk menjalankan prosedur tersimpan. Jangan pernah memberikan izin secara langsung kepada pengguna untuk mengubah, menyisipkan, atau menghapus catatan.
2. Verifikasi dilewati
Prinsip serangan: Sebagian besar program ASP yang perlu diverifikasi sekarang menambahkan pernyataan penilaian ke header halaman, tetapi ini tidak cukup bagi peretas untuk melewati verifikasi dan masuk secara langsung.
Keterampilan pencegahan: Halaman ASP yang perlu diverifikasi dapat melacak nama file halaman sebelumnya. Hanya sesi yang ditransfer dari halaman sebelumnya yang dapat membaca halaman ini.
3. Masalah kebocoran file Inc
Prinsip serangan: Ketika halaman beranda dengan ASP sedang dibuat dan belum di-debug, halaman tersebut dapat secara otomatis ditambahkan sebagai objek pencarian oleh beberapa mesin pencari. Jika seseorang menggunakan mesin pencari untuk mencari halaman web ini saat ini, mereka akan mendapatkan lokasi file yang relevan, dan dapat melihat detail lokasi dan struktur database di browser, sehingga mengungkapkan kode sumber secara lengkap.
Kiat pencegahan: Pemrogram harus men-debug halaman web secara menyeluruh sebelum menerbitkannya; pakar keamanan perlu memperkuat file ASP sehingga pengguna eksternal tidak dapat melihatnya. Pertama, enkripsi konten file .inc. Kedua, Anda juga dapat menggunakan file .asp sebagai pengganti file .inc sehingga pengguna tidak dapat langsung melihat kode sumber file dari browser. Nama file file inc tidak boleh menggunakan default sistem atau nama dengan arti khusus yang mudah ditebak pengguna. Usahakan menggunakan huruf bahasa Inggris yang tidak beraturan.
4. Pencadangan otomatis diunduh
Prinsip serangan: Di beberapa alat untuk mengedit program ASP, saat membuat atau memodifikasi file ASP, editor secara otomatis membuat file cadangan. Misalnya, UltraEdit akan membuat cadangan file .bak akan secara otomatis menghasilkan file bernama some.asp.bak. Jika Anda tidak menghapus file bak ini, penyerang dapat langsung mendownload file some.asp.bak, sehingga program sumber some.asp akan diunduh.
Tip pencegahan: Periksa program Anda dengan cermat sebelum mengunggahnya dan hapus dokumen yang tidak diperlukan. Berhati-hatilah dengan file dengan akhiran BAK.
5. Karakter khusus
Prinsip serangan: Kotak input adalah target yang digunakan oleh peretas. Mereka dapat menyebabkan kerusakan pada klien pengguna dengan memasukkan bahasa skrip; jika kotak input melibatkan permintaan data, mereka akan menggunakan pernyataan permintaan khusus untuk mendapatkan lebih banyak data database dan bahkan tabel semua. Oleh karena itu, kotak masukan harus disaring. Namun, jika pemeriksaan validitas masukan hanya dilakukan pada klien untuk meningkatkan efisiensi, pemeriksaan tersebut masih dapat dilewati.
Keterampilan pencegahan: Dalam program ASP yang menangani kotak masukan seperti papan pesan dan BBS, yang terbaik adalah memblokir pernyataan HTML, JavaScript, dan VBScript. Jika tidak ada persyaratan khusus, Anda dapat membatasi masukan huruf dan angka hanya pada huruf dan angka, dan memblokir karakter khusus. Pada saat yang sama, panjang karakter masukan dibatasi. Dan tidak hanya pengecekan validitas input saja yang harus dilakukan pada sisi client, namun pengecekan serupa juga harus dilakukan pada program sisi server.
6. Kerentanan pengunduhan basis data
Prinsip serangan: Saat menggunakan akses sebagai database backend, jika seseorang mengetahui atau menebak jalur dan nama database database Access server melalui berbagai metode, maka dia juga dapat mendownload file database Access, yang sangat berbahaya.
Kiat pencegahan:
(1) Berikan file database Anda nama yang rumit dan tidak biasa, dan letakkan di beberapa direktori. Yang disebut inkonvensional, misalnya jika ada database yang ingin menyimpan informasi tentang buku, jangan diberi nama book.mdb, tetapi diberi nama yang aneh, misalnya d34ksfslf.mdb, dan dicantumkan. ditempatkan di beberapa direktori seperti ./kdslf/i44/studi/, yang semakin mempersulit peretas untuk mendapatkan file database Access Anda dengan menebaknya.
(2) Jangan menulis nama database di program. Beberapa orang suka menulis DSN di programnya, seperti:
DBPath = Server.MapPath(cmddb.mdb)
samb.Buka driver={Microsoft Access Driver (*.mdb)};
Jika seseorang mendapatkan program sumber, nama database Access Anda akan terlihat sekilas. Oleh karena itu, disarankan agar Anda mengatur sumber data di ODBC dan kemudian menulis ini di program:
samb.openshujiyuan
(3) Gunakan Access untuk menyandikan dan mengenkripsi file database. Pertama, pilih database (misalnya: Employee.mdb) di Tools → Security → Encrypt/Decrypt Database, lalu klik OK. Kemudian akan muncul jendela untuk menyimpan database setelah enkripsi.
Perlu dicatat bahwa tindakan di atas tidak menetapkan kata sandi untuk database, tetapi hanya mengkodekan file database. Tujuannya adalah untuk mencegah orang lain menggunakan alat lain untuk melihat isi file database.
Selanjutnya, kita mengenkripsi database. Pertama, buka karyawan1.mdb yang dikodekan. Saat membuka, pilih mode eksklusif. Kemudian pilih Alat → Keamanan → Tetapkan Kata Sandi Basis Data dari menu, lalu masukkan kata sandi. Dengan cara ini, meskipun orang lain mendapatkan file Employee1.mdb, mereka tidak akan dapat melihat konten Employee1.mdb tanpa kata sandi.
7. Mencegah serangan injeksi jarak jauh
Jenis serangan ini seharusnya merupakan metode serangan yang relatif umum di masa lalu, seperti serangan POST. Penyerang dapat mengubah nilai data yang akan dikirimkan sesuka hati untuk mencapai tujuan serangan. mana yang lebih layak menyebabkan programmer atau website Catatan panjang, jangan gunakan COOKIES sebagai metode otentikasi pengguna, jika tidak, Anda sama saja menyerahkan kunci kepada pencuri.
Misalnya:
Jika trim(Request.cookies (uname))=fqy dan Request.cookies(upwd) =fqy#e3i5.com maka
……..lagi…………
Berakhir jika
Saya rasa semua webmaster atau teman-teman yang suka menulis program tidak boleh melakukan kesalahan seperti ini. Benar-benar tidak bisa dimaafkan. Kami telah memalsukan COOKIES selama bertahun-tahun. Jika Anda masih menggunakannya, Anda tidak dapat menyalahkan orang lain karena mencuri kata sandi Anda. Ini melibatkan pengguna. Untuk kata sandi atau login pengguna, sebaiknya gunakan sesi, yang paling aman. Jika Anda ingin menggunakan COOKIES, tambahkan satu informasi lagi ke COOKIES Anda, SessionID harus menebaknya. Kemungkinan.
jika tidak (rs.BOF atau rs.eof) maka
masuk=benar
Sesi(nama pengguna&ID sesi) = Nama Pengguna
Sesi(kata sandi& ID sesi) = Kata Sandi
'Respon.cookies(nama pengguna)= Nama Pengguna
'Respon.cookies(Kata Sandi)= Kata Sandi
Mari kita bicara tentang bagaimana mencegah serangan injeksi jarak jauh. Serangan yang umum adalah menyeret file pengiriman formulir tunggal ke lokal dan mengarahkan Formulir ACTION=chk.asp ke file yang memproses data di server Anda Pada satu halaman tabel, selamat, Anda akan diserang oleh skrip.
Bagaimana cara menghentikan serangan jarak jauh tersebut? Caranya mudah, silakan lihat kode berikut: Badan program (9)
<%
server_v1=Cstr(Permintaan.ServerVariables(HTTP_REFERER))
server_v2=Cstr(Permintaan.ServerVariables(SERVER_NAME))
jika pertengahan(server_v1,8,len(server_v2))<>server_v2 maka
respon.tulis <br><br><center>
respon.tulis
respon.write Jalur yang Anda kirimkan salah. Dilarang mengirimkan data dari luar situs. Mohon jangan mengubah parameter secara acak!
respon.tulis
respon.akhir
berakhir jika
%>
'Secara pribadi, saya merasa pemfilteran kode di atas kurang baik. Beberapa kiriman eksternal masih bisa masuk secara terbuka, jadi saya menulis yang lain.
'Ini memiliki efek penyaringan yang sangat baik dan direkomendasikan untuk digunakan.
jika instr(request.servervariables(http_referer),http://&request.servervariables(host) )<1 maka respon.write Terjadi kesalahan pada server saat memproses URL.
Jika Anda menggunakan cara apa pun untuk menyerang server, Anda beruntung karena semua operasi Anda telah dicatat oleh server. Kami akan memberi tahu Biro Keamanan Publik dan Departemen Keamanan Nasional sesegera mungkin untuk menyelidiki IP Anda.
respon.akhir
berakhir jika
Badan program(9)
Saya pikir semuanya akan baik-baik saja dengan cara ini, jadi saya menambahkan beberapa batasan pada halaman tabel, seperti maxlength, dll... Tapi Tuhan sangat tidak baik, semakin Anda takut akan sesuatu, semakin dia akan melakukannya. Jangan lupa, penyerang dapat menerobos injeksi SQL Batasan panjang kotak input selama serangan. Tulis program SOCKET untuk mengubah HTTP_REFERER? saya tidak akan melakukannya. Artikel seperti ini diterbitkan secara online:
-------------------------len.reg-----------------
Editor Registri Windows Versi 5.00
[Ekstensi HKEY_CURRENT_USERPerangkat Lunak & MicrosoftInternet ExplorerMenuExt]
@=C:Dokumen dan PengaturanAdministratorDesktoplen.htm
konteks=kata sandi:00000004
----------akhir---------------------
-------------------------len.htm------------------
----------akhir----------------------
Penggunaan: Pertama impor len.reg ke dalam registri (perhatikan jalur file)
Kemudian salin len.htm ke lokasi yang ditentukan di registri.
Buka halaman web, tempatkan kursor pada kotak masukan yang panjangnya ingin Anda ubah, dan klik kanan. Anda mungkin pernah melihat opsi yang disebut ekstensi.
Klik untuk melakukannya! Postscript: Hal yang sama dapat dilakukan dengan skrip yang membatasi konten masukan.
apa yang harus dilakukan? Keterbatasan kita terhindar dan semua usaha kita sia-sia? Tidak, angkat keyboard Anda dan katakan tidak. Mari kita kembali ke pemfilteran karakter skrip.Injeksi yang mereka lakukan tidak lebih dari serangan skrip. Mari kita curahkan seluruh energi kita ke halaman setelah ACTION. Di halaman chk.asp, kita menyaring semua karakter ilegal. Kami hanya memberikan tembakan palsu di depan kami dan meminta mereka untuk mengubah registri. Hanya ketika mereka menyelesaikan perubahan barulah mereka menyadari bahwa apa yang telah mereka lakukan sia-sia.
8. Trojan ASP
Karena itu, saya ingin mengingatkan semua webmaster forum untuk berhati-hati saat mengunggah file: Mengapa host juga ditempati oleh penyerang setelah program forum dibobol? Alasannya adalah...benar! Trojan ASP! Sebuah kekejian mutlak. Virus? Tidak. Masukkan saja file ini ke dalam program forum Anda dan Anda selalu dapat mencarinya. Aneh rasanya jika tidak muntah darah. Bagaimana kita mencegah Trojan ASP diunggah ke server? Caranya sangat sederhana, jika forum Anda mendukung upload file, silakan atur format file yang ingin Anda upload, saya tidak setuju dengan penggunaan format file yang dapat diubah, kuncinya langsung dari program selesai. Ya, memberikan lebih banyak kemudahan untuk diri Anda sendiri juga akan memberikan lebih banyak kemudahan bagi penyerang. Bagaimana cara menentukan formatnya? Saya sudah mengumpulkannya di sini dan memodifikasinya.
Badan program (10)
'Tentukan apakah jenis file memenuhi syarat
Fungsi Pribadi CheckFileExt (fileEXT)
redupkan Forumupload
Forumupload=gif,jpg,bmp,jpeg
Forumupload=berpisah(Forumupload,,)
untuk i=0 hingga ubound(Forumupload)
jika lcase(fileEXT)=lcase(trim(Forumupload(i))) maka
CheckFileExt=benar
keluar Fungsi
kalau tidak
PeriksaFileExt=salah
berakhir jika
Berikutnya
Fungsi Akhir
'Verifikasi legalitas konten file
setel MyFile = server.CreateObject (Scripting.FileSystemObject)
set MyText = MyFile.OpenTextFile (sFile, 1) 'Baca file teks
sTextAll = lcase(MyText.ReadAll): Teks Saya.close
'Tentukan operasi berbahaya di file pengguna
sStr =8 .getfolder .createfolder .deletefolder .createdirectory
.deletedirectory
sStr = sStr & .saveas wscript.skrip shell.encode
sNoString = terbagi(sStr, )
untuk i = 1 hingga sNoString(0)
jika instr(sTextAll, sNoString(i)) <> 0 maka
sFile = Upl.Path & sFileSave: fs.DeleteFile sFile
Response.write <center><br><big>& sFileSave &File berisi perintah yang terkait dengan direktori operasi, dll.&_
<br><font color=red>& mid(sNoString(i),2) &</font>, demi alasan keamanan, <b> tidak dapat diunggah. <b>&_</big></center></html>
Respon.akhir
berakhir jika
Berikutnya
Tambahkan mereka ke program unggahan Anda untuk verifikasi, dan keamanan program unggahan Anda akan sangat ditingkatkan.
Apa? Apakah kamu masih khawatir? Munculkan kartu truf Anda dan mintalah bantuan penyedia layanan hosting web Anda. Masuk ke server dan ganti nama atau hapus item shell.application dan shell.application.1 di ID PROG. Kemudian ganti nama atau hapus item WSCRIPT.SHELL dan WSCRIPT.SHELL.1. Haha, saya berani mengatakan bahwa mungkin lebih dari separuh host virtual di China tidak berubah. Saya hanya senang bahwa pengguna Anda sangat kooperatif, jika tidak... Saya akan menghapus, saya akan menghapus, saya akan menghapus, menghapus, menghapus...