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 berhati-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 diretas.
Prinsip serangan: Nama pengguna dan kata sandi sering kali menjadi hal yang paling diminati oleh peretas. Jika kode sumber terlihat dalam beberapa hal, 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 langsung kepada pengguna untuk mengubah, menyisipkan, atau menghapus catatan.
2. Prinsip serangan melewati verifikasi
: 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 beranda dengan ASP sedang diproduksi dan belum diselesaikan sebelum debugging, maka 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 luar 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. Prinsip serangan pengunduhan cadangan otomatis
: 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 memodifikasi some.asp, editor 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.
Prinsip serangan karakter khusus: Kotak masukan adalah target peretas. Mereka dapat menyebabkan kerusakan pada klien pengguna dengan memasukkan bahasa skrip; jika kotak masukan melibatkan kueri data, mereka akan menggunakan pernyataan kueri khusus untuk mendapatkan lebih banyak data basis data; atau bahkan seluruh meja. 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.
Prinsip serangan kerentanan pengunduhan basis data: Saat menggunakan Access sebagai basis data backend, jika seseorang mengetahui atau menebak jalur dan nama basis data dari basis data Access server melalui berbagai metode, maka ia juga dapat mengunduh file basis data Access, yang sangat berbahaya . dari.
Tip 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 , dan meletakkannya di beberapa direktori seperti ./kdslf/i44/studi/, sehingga akan semakin sulit bagi hacker untuk mendapatkan file database Access Anda dengan hanya menebak-nebak.
(2) Jangan menulis nama database di program. Beberapa orang suka menulis DSN di programnya, misalnya:
DBPath = Server.MapPath("cmddb.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
Jika seseorang mendapatkan program sumber, nama database Access Anda akan terlihat sekilas. Oleh karena itu, disarankan agar Anda mengatur sumber data di ODBC, lalu menulis ini di program:
conn.open "shujiyuan"
(3) Gunakan Access untuk menyandikan dan mengenkripsi file database. Pertama, pilih database (seperti: Employee.mdb) di "Tools → Security → Encrypt/Decrypt Database", lalu klik OK. Kemudian akan muncul jendela "Database Encrypted Save As" Anda dapat menyimpannya sebagai: "employer1 .mdb".
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 Employee1.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.
Serangan semacam ini harus menjadi 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. Pemalsuan COOKIES, mana yang lebih bermanfaat. Ini menarik perhatian programmer atau webmaster. Jangan gunakan COOKIES sebagai metode otentikasi pengguna. Jika tidak, Anda akan menyerahkan kunci kepada
pencuri
.
uname"))=" fqy" dan Request.cookies("upwd") ="fqy#e3i5.com" lalu
……..lagi…………
Akhiri jika
menurut saya semua webmaster atau teman-teman yang suka menulis program tidak boleh melakukan kesalahan seperti ini. Sungguh tidak bisa dimaafkan. Kami telah memalsukan COOKIES selama bertahun-tahun. Jika Anda masih menggunakannya, Anda tidak dapat menyalahkan orang lain karena mencuri milik Anda kata sandi. Ini melibatkan Ketika menyangkut kata sandi pengguna atau login pengguna, Anda sebaiknya menggunakan sesi, yang paling aman. Jika Anda ingin menggunakan COOKIES, tambahkan satu informasi lagi ke COOKIES Anda, SessionID 64 bit. Anda harus menebaknya. , Tidak mungkin. Contoh:
jika tidak (rs.BOF atau rs.eof) maka
masuk="benar"
Sesi("nama pengguna"&sessionID) = Nama Pengguna
Sesi("kata sandi"& sessionID) = Kata Sandi
'Respon.cookies("nama pengguna")= Nama Pengguna
'Response.cookies("Password") = Kata Sandi
Mari kita bicara tentang cara mencegah serangan injeksi jarak jauh. Serangan umumnya adalah menyeret file pengiriman formulir tunggal ke lokal dan mengarahkan Formulir ACTION="chk.asp" ke server Anda untuk pemrosesan. File data sudah cukup. Jika semua pemfilteran data Anda ada pada satu halaman tabel, maka selamat, Anda akan diserang oleh skrip.
Bagaimana cara mencegah serangan jarak jauh seperti itu? 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 parameternya!"
respon.tulis "
"
respon.akhir
berakhir jika
%>
'Secara pribadi, saya merasa pemfilteran kode di atas kurang bagus. Beberapa kiriman eksternal masih bisa masuk secara terbuka, jadi saya menulis yang lain.
'
Efek pemfilteran ini sangat bagus, disarankan untuk digunakan
.servervariables("http_referer" )," http://"&request.servervariables("host ") )<1 lalu respon.write "Terjadi kesalahan di server saat memproses URL.
Jika Anda menyerang server dengan cara apa pun
,maka
Anda seharusnya beruntung karena semua operasi Anda Itu telah dicatat oleh server. Kami akan memberi tahu Biro Keamanan Publik dan Departemen Keamanan Nasional sesegera mungkin untuk menyelidiki IP Anda
berakhir jika
Badan program (9)
berpikir bahwa semuanya akan baik-baik saja dengan ini, dan menambahkan beberapa batasan pada halaman formulir, seperti maxlength, dll... Tapi Tuhan sangat tidak baik, semakin Anda takut akan sesuatu, semakin besar kemungkinannya. akan. Jangan lupa, serangan Penulis dapat menembus batas panjang kotak input selama serangan injeksi SQL. Tulis program SOCKET untuk mengubah HTTP_REFERER? saya tidak akan melakukannya. Artikel seperti itu diterbitkan secara online:
------------len.reg-----------------
Editor Registri Windows Versi 5.00
[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExtExtensions]
@="C:Dokumen dan PengaturanAdministratorDesktoplen.htm"
"konteks"=kata sandi:00000004
----------akhir---------------------
-------------------------len.htm------------------
----------akhir----------------------
Penggunaan: Pertama impor len.reg ke dalam registri (perhatikan jalur file)
dan lalu Salin len.htm ke tempat yang ditentukan di registri.
Buka halaman web, tempatkan kursor pada kotak masukan yang panjangnya ingin diubah, dan klik kanan. Jika Anda melihat opsi bernama ekstensi,
klik Selesai! : Hal yang sama dapat dilakukan.
Bagaimana menangani
skrip yang membatasi konten masukan ?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.
Kita telah membicarakan tentang kuda Troya ASP di sini, dan saya ingin mengingatkan semua webmaster forum untuk berhati-hati saat mengunggah file: Mengapa host juga ditempati oleh penyerang setelah program forum rusak? Alasannya adalah...benar! Trojan ASP! Sebuah kekejian mutlak. Virus? Tidak. Masukkan saja file tersebut 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 telah mengumpulkan satu di sini dan memodifikasinya. Anda dapat melihatnya:
Badan program (10)
'Menilai apakah jenis file memenuhi syarat.
redupkan Forumupload
Forumupload="gif,jpg,bmp,jpeg"
Forumupload=split(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
kumpulan konten file MyFile = server.CreateObject ("Scripting.FileSystemObject")
set MyText = MyFile.OpenTextFile (sFile, 1) ' Baca file teks sTextAll = lcase(MyText.ReadAll): MyText.close
'Tentukan operasi berbahaya di file pengguna sStr = "8 .getfolder .createfolder .deletefolder .createdirectory
.hapusdirektori"
sStr = sStr & " .saveas wscript.skrip shell.encode"
sNoString = membagi(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>< / tengah></html>"
Respon.akhir
berakhir jika
BerikutnyaTambahkan
mereka ke program unggahan Anda untuk verifikasi, maka keamanan program unggahan Anda akan sangat meningkat
. 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...