Apakah mekanisme pertahanan teras Aplikasi Web?
Untuk mengelakkan input berniat jahat, aplikasi melaksanakan beberapa mekanisme keselamatan yang secara konsepnya serupa.
Mekanisme keselamatan ini terdiri daripada aspek berikut:
Memproses akses Biasanya terdapat pelbagai jenis pengguna aplikasi, seperti pengguna biasa, Log masuk untuk mengesahkan pengguna dan pentadbir. Keizinan yang berbeza diberikan kepada aplikasi web pengguna yang berbeza supaya mereka hanya boleh mengakses data dan fungsi yang berbeza. Aplikasi web mengendalikan akses pengguna melalui tiga mekanisme keselamatan yang saling berkaitan:1. Memproses data dan fungsi akses pengguna kepada aplikasi web (mencegah akses tanpa kebenaran)
2. Memproses input data oleh pengguna ke fungsi aplikasi web (menghalang pembinaan data berniat jahat) 3 Menjawab serangan (mengendalikan laporan ralat yang tidak dijangka, menyekat serangan yang jelas secara automatik, menghantar makluman kepada pentadbir, program Penyelenggaraan secara automatik. log akses) 4 Pengurusan dan penyelenggaraan aplikasi
1 Pengesahan 2. Pengurusan sesi (Pengurusan Sesi) 3 Kawalan Akses (Kawalan Akses), capaian yang tidak dibenarkan akan berlaku (prinsip tong).
Pengesahan
Pengesahan ialah mekanisme pertama untuk mengendalikan akses pengguna Melainkan tapak web hanya mempunyai satu pengguna, pengesahan mesti digunakan.
Kebanyakan aplikasi web hari ini menggunakan model pengesahan tradisional, iaitu nama pengguna dan kata laluan.
Dalam aplikasi dengan keperluan keselamatan yang lebih tinggi seperti perbankan, sijil lain, pengesahan dua faktor, dll. akan digunakan untuk mengukuhkan model ini dalam aplikasi dengan keperluan keselamatan yang lebih tinggi, sijil pelanggan, kad pintar atau pertanyaan mungkin diperlukan -Mekanisme jawapan dan model pengesahan lain.
Mekanisme pengesahan selalunya memerlukan satu siri fungsi sokongan lain, seperti pendaftaran, kata laluan terlupa, penukaran kata laluan, dsb.
Terdapat beberapa kelemahan biasa dalam mekanisme pengesahan, seperti traversal nama pengguna, kata laluan yang lemah, kelemahan logik untuk mengelakkan log masuk, pertanyaan pangkalan data kejuruteraan sosial, dsb.
Pengurusan Sesi
Selepas lulus pengesahan, tiba masanya untuk mengurus sesi pengguna. Untuk melaksanakan kawalan akses, aplikasi perlu mengenal pasti pelbagai permintaan yang dikemukakan oleh pengguna yang berbeza untuk melakukan ini, aplikasi perlu menubuhkan sesi untuk setiap pengguna dan menghantar token yang mewakili sesi, iaitu, token sesi, kepada pengguna. Sesi itu sendiri ialah satu set struktur data yang disimpan pada pelayan yang menjejaki keadaan interaksi antara pengguna dan aplikasi.
Token sesi biasanya dihantar dalam kuki, dan kadangkala muncul pada medan borang tersembunyi atau rentetan pertanyaan URL Token sesi akan tamat tempoh dalam tempoh masa selepas menghentikan permintaan.
Sesetengah aplikasi tidak menggunakan token sesi untuk mengenal pasti sesi, sebaliknya mengenal pasti sesi dengan menghantar sijil pengguna berulang kali (ini adalah kes dengan mekanisme pengesahan terbina dalam http, yang mengenal pasti sesi dengan menghantar berulang kali kata laluan akaun yang disulitkan dengan base64 ). Dalam sesetengah kes, maklumat sesi tidak disimpan pada pelayan, tetapi pada klien Untuk menghalang pengguna daripada mengubahnya, ia biasanya disulitkan.
Permukaan serangan pengurusan sesi ialah token sesi itu sendiri Dengan membuat kesimpulan peraturan penjanaan token sesi atau memintas token sesi pengguna lain, anda boleh mengakses fungsi dan data yang tidak dibenarkan seperti yang lain.
Kawalan Akses
Jika pengesahan dan pengurusan sesi sebelumnya berjalan seperti biasa, aplikasi boleh mengesahkan identiti dan status interaksi setiap pengguna melalui token sesi dalam setiap permintaan, jadi ia boleh membuat keputusan sama ada bersetuju dengan permintaan pengguna.
Oleh kerana keperluan kawalan capaian biasa adalah agak kompleks, setiap peranan mempunyai kebenaran yang berbeza, dan setiap pengguna hanya dibenarkan untuk mengakses sebahagian daripada data dan fungsi dalam aplikasi itu, secara amnya terdapat sejumlah besar kelemahan dalam mekanisme ini, yang boleh menyebabkan masalah masa depan.
Memproses input
Semua input pengguna tidak boleh dipercayai kebanyakan serangan pada aplikasi web berkaitan dengan input yang dibina khas oleh penyerang oleh itu, memproses input pengguna dengan selamat adalah kunci untuk melindungi aplikasi kepada keselamatan program.
Kepelbagaian input
Aplikasi web mungkin melakukan semakan yang sangat ketat pada beberapa input khas, seperti had panjang, had aksara, dsb. kadangkala mereka mungkin perlu menerima sebarang input yang diserahkan oleh pengguna ; Walau bagaimanapun, medan borang tersembunyi dan kuki dijana pada pelayan dan dihantar semula kepada klien, dan kemudian dihantar semula ke pelayan oleh permintaan pengguna Semasa proses ini, penyerang boleh melihat dan mengubah suainya.
Kaedah pemprosesan input
Gunakan kaedah pemprosesan yang berbeza dalam situasi yang berbeza, atau gunakan kaedah tersebut dalam kombinasi.
1. Senarai hitam
Senarai hitam mengandungi satu set rentetan atau corak yang akan digunakan dalam serangan Semua data yang sepadan dengan senarai hitam akan disekat.
Senarai hitam ialah cara paling kurang berkesan untuk mengesahkan input. Terdapat dua sebab:
1) Input pengguna boleh dipintas melalui pelbagai pengekodan atau bentuk ungkapan lain, seperti kehilangan beberapa aksara yang mempunyai kesan yang sama. Contohnya, jika alert('xss') disekat, anda juga boleh menggunakan prompt('xss'). Contohnya, firewall aplikasi web selalunya tertakluk kepada serangan null byte (null) Ini kerana rentetan diproses secara berbeza dalam managed dan situasi yang tidak terurus.2) Perkembangan teknologi yang pesat telah menghasilkan beberapa kaedah baharu untuk mengeksploitasi kelemahan.
2. Senarai putih
Senarai putih mengandungi set rentetan, corak atau set standard. Semua data yang tidak sepadan dengan senarai putih akan disekat.
Senarai putih ialah kaedah terbaik untuk pengesahan input, kerana hanya rentetan selamat akan ditinggalkan apabila menentukan senarai putih dan penyerang tidak boleh membina input.
Tetapi penyenaraian putih mempunyai had. Dalam kebanyakan kes, aplikasi web mesti menerima beberapa aksara yang tidak memenuhi piawaian keselamatan Contohnya, aplikasi memerlukan pengguna mendaftar dengan nama sebenar mereka, tetapi nama tersebut mengandungi beberapa tanda sempang, tanda kutip dan aksara lain yang boleh menyebabkan serangan pada pangkalan data. . Oleh itu, senarai putih mempunyai had dan bukan penyelesaian universal kepada input yang tidak selamat.
3. Pemurnian
Kaedah ini menyelesaikan masalah yang tidak dapat dikendalikan oleh senarai putih yang tidak dapat menjamin keselamatan, tetapi akan membersihkannya, seperti pemadaman, pengekodan dan pengekodan. penulenan
lain boleh digunakan sebagai kaedah umum, tetapi perlu diingat bahawa jika item input perlu menampung beberapa kemungkinan data berniat jahat, ia boleh berkembang dengan berkesan. Dalam kes ini, pengesahan sempadan diperlukan.
4. Pemprosesan data selamat
Memproses data yang diserahkan pengguna dengan cara yang tidak selamat adalah punca banyak kelemahan aplikasi web.
Kaedah pemprosesan data selamat yang tidak perlu risau tentang mengesahkan data input pengguna, sebaliknya memastikan keselamatan mutlak proses pemprosesan. Contohnya, pertanyaan berparameter untuk menghalang suntikan sql.
Tetapi kaedah ini tidak terpakai pada setiap tugas yang perlu dilakukan oleh aplikasi web, jika berkenaan, ia adalah kaedah umum untuk mengendalikan input berniat jahat.
5. Semakan logik
Dalam beberapa kelemahan, input penyerang dan pengguna biasa adalah sama, tetapi motivasinya adalah berbeza dalam kes ini tidak berkesan. Contohnya, menyerang akaun yang diserahkan dengan mengubah suai medan borang tersembunyi dalam percubaan untuk mengakses akaun pengguna lain. Pada ketika ini, tiada jumlah pengesahan input dapat membezakan data penyerang daripada data pengguna biasa. Untuk menghalang akses tanpa kebenaran, aplikasi mesti mengesahkan bahawa akaun yang diserahkan adalah milik pengguna yang telah menyerahkan akaun tersebut sebelum ini.
Pengesahan Sempadan
Memandangkan sifat masalah keselamatan teras (semua input pengguna tidak dipercayai), seseorang boleh mempertimbangkan sempadan antara Internet (tidak dipercayai) dan aplikasi pelayan (dipercayai), dan kemudian Bersihkan semua input daripada Internet di sempadan dan hantar data yang telah dibersihkan ke aplikasi pelayan. Di atas adalah pengesahan sempadan yang mudah Apabila menganalisis kelemahan sebenar, didapati bahawa melakukan pengesahan input mudah ini tidak mencukupi.
Berdasarkan keluasan fungsi yang dilakukan oleh aplikasi dan kepelbagaian teknologi yang diterima pakai, aplikasi biasa perlu bertahan daripada sejumlah besar pelbagai serangan input, yang setiap satunya mungkin menggunakan data Reka Bentuk khusus yang berbeza sama sekali, jadi sukar untuk mewujudkan mekanisme mudah di sempadan luar untuk bertahan daripada semua serangan.
Banyak ciri aplikasi direka untuk menggabungkan satu siri proses yang berbeza Satu input daripada pengguna boleh melakukan banyak operasi dalam banyak komponen, di mana output operasi sebelumnya digunakan dalam operasi berikutnya. Data diubah dan berbeza sama sekali daripada input asal. Walau bagaimanapun, penyerang berpengalaman boleh memanfaatkan perbezaan ini untuk menjana data berniat jahat pada langkah kritikal dan menyerang komponen yang menerima data. Oleh itu, adalah sukar untuk mewujudkan mekanisme mudah di sempadan luar untuk bertahan daripada semua serangan.
Pengesahan sempadan ialah model yang lebih cekap. Sempadan di sini tidak lagi terhad kepada sempadan antara Internet dan aplikasi web Setiap komponen atau unit fungsi aplikasi web mempunyai sempadan. Dengan cara ini, setiap komponen boleh mempertahankan dirinya daripada jenis input yang direka khas yang diterimanya. Apabila data melalui komponen yang berbeza, semakan pengesahan boleh dilakukan pada data yang dijana sebelum ini, dan memandangkan semakan pengesahan yang berbeza dilakukan pada peringkat pemprosesan yang berbeza, tidak ada kemungkinan konflik antara mereka.
Sebagai contoh, gambar berikut:
Pengesahan dan penormalan berbilang langkah
Semasa proses semakan pengesahan, apabila ia perlu diproses dalam beberapa langkah Apabila pengguna memasukkan, akan ada masalah yang sering dihadapi oleh mekanisme input. Masalah ini berlaku apabila aplikasi cuba membersihkan input pengguna dengan mengalih keluar atau mengekod aksara tertentu. Jika masalah ini tidak dikendalikan dengan berhati-hati, penyerang boleh membina input khusus supaya data berniat jahat boleh berjaya memintas mekanisme pengesahan. Contohnya, pintasan tulis dua kali dan pintasan urutan pelaksanaan langkah.
Penormalan data mencipta masalah lain. Untuk menghantar beberapa aksara dan data binari yang tidak biasa melalui http, ia biasanya dinormalisasi melalui pengekodan Walau bagaimanapun, jika penyahkodan dilakukan selepas penapisan dilaksanakan, penyerang boleh mengelakkan mekanisme pengesahan melalui pengekodan.
Selain skema pengekodan standard yang digunakan oleh aplikasi web, kes lain jika komponen aplikasi menukar data daripada satu set aksara kepada yang lain, ini juga boleh menyebabkan masalah penormalan. Sebagai contoh, Ÿ dan  ditukar kepada Y dan A. Penyerang sering menggunakan kaedah ini untuk menghantar aksara dan kata kunci yang disekat.
Kadangkala sukar untuk mengelakkan masalah yang disebabkan oleh pengesahan dan penormalan berbilang langkah, dan tiada penyelesaian tunggal untuk masalah ini. Bagaimanakah mungkin untuk mengelak daripada membersihkan input yang tidak baik dan sebaliknya menolak input tersebut sama sekali.
Membalas Serangan
Kami telah mencuba sedaya upaya untuk menghalang penyerang daripada menceroboh, tetapi tiada sistem yang benar-benar selamat Jika insiden keselamatan berlaku, bagaimanakah aplikasi web harus bertindak balas terhadap serangan itu? Apakah langkah pengendalian? Secara amnya, ia adalah seperti berikut:
Kendalikan ralat1 Mengendalikan laporan ralat yang tidak dijangka
2. Sekat serangan yang jelas secara automatik makluman kepada pentadbir
4. Mengekalkan log akses program
Mekanisme utama aplikasi ialah cara mengendalikan ralat yang tidak dijangka . Secara amnya dalam persekitaran pengeluaran, aplikasi tidak seharusnya mengembalikan sebarang maklumat yang dijana sistem atau maklumat penyahpepijatan lain kepada pengguna. Maklumat ini memberikan penyerang maklumat rujukan yang baik untuk serangan seterusnya. Dan ralat yang tidak dijangka sering menunjukkan beberapa kecacatan dalam mekanisme pertahanan program. Mekanisme pengendalian ralat sering disepadukan dengan mekanisme pembalakan.
Mengatasi SeranganBanyak serangan akan menghantar sejumlah besar watak berniat jahat biasa Dalam kes sedemikian, aplikasi harus mengambil langkah tindak balas automatik untuk menghalang penyerang daripada mengesannya. Contohnya, tamatkan sesi, perlukan log masuk semula, larang IP, dsb.
Kekalkan logLog akan merekodkan situasi pencerobohan dan proses pencerobohan boleh masih boleh dipulihkan selepas pencerobohan.
Log aplikasi penting hendaklah merekodkan semua permintaan. Secara amnya, ia harus mengandungi sekurang-kurangnya item berikut:
1 Semua acara yang berkaitan dengan pengesahan, seperti log masuk yang berjaya atau gagal, pengubahsuaian kata laluan2 Pemindahan, dsb.
3. Permintaan disekat oleh kawalan akses
4. Mengandungi rentetan serangan yang diketahui
Log akan merekodkan masa, IP, Akaun Pengguna. Log perlu dilindungi dengan ketat daripada bacaan yang tidak dibenarkan. Menulis, mengubah suai, dsb. Log
juga akan menjadi permukaan serangan Contohnya, log yang boleh diakses tanpa kebenaran akan memberikan penyerang maklumat sensitif seperti token sesi, parameter permintaan, dsb.
Makluman kepada pentadbirMasalah utama ialah positif palsu dan negatif palsu, yang boleh diperbaiki dengan menggabungkan mekanisme amaran dengan mekanisme pengesahan dan kaedah kawalan lain.
Secara amnya, kejadian luar biasa yang dipantau termasuk yang berikut:
1 Aplikasi tidak normal, seperti menerima sejumlah besar permintaan daripada IP2. Urus niaga adalah tidak normal, seperti jumlah dana yang dipindahkan masuk dan keluar dari akaun bank adalah tidak normal
3 Mengandungi rentetan serangan yang diketahui
Data dalam permintaan yang tidak boleh dilihat oleh pengguna biasa diubah suai
Urus Aplikasi
Program pengurusan boleh membantu pentadbir mengurus akaun dan peranan pengguna, menggunakan fungsi pemantauan dan pengauditan, melaksanakan tugas diagnostik dan mengkonfigurasi pelbagai ciri aplikasi.
Mekanisme pengurusan ialah salah satu permukaan serangan utama aplikasi, dan mekanisme pengurusan selalunya mempunyai kebenaran yang sangat tinggi. Mendapat kawalan ke atas mekanisme pengurusan adalah memperoleh kawalan ke atas aplikasi. Selain itu, selalunya terdapat beberapa kelemahan yang jelas dan fungsi sensitif dalam mekanisme pengurusan. Kerentanan yang mendapat kebenaran pentadbir biasanya berlaku dalam mekanisme untuk mengendalikan akses pengguna, seperti akses tanpa kebenaran, kata laluan yang lemah, dll. Jika latar belakang pengurusan boleh mengendalikan permintaan yang dihantar oleh pengguna biasa, anda boleh cuba menaip kelemahan XSS secara membuta tuli ke latar belakang.
Atas ialah kandungan terperinci Apakah mekanisme pertahanan teras Aplikasi Web?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



1. Log keluaran ke fail menggunakan modul: pengelogan boleh menjana log peringkat tersuai, dan boleh mengeluarkan log ke laluan yang ditentukan Tahap log: nyahpepijat (log nyahpepijat) = 5) {clearTimeout (time) // Jika semua keputusan diperolehi 10. masa berturut-turut kosong Log mengosongkan tugas berjadual}return}if(data.log_type==2){//Jika log baharu diperolehi untuk(i=0;i

Persekitaran ular sawa yang bergantung pada artikel ini ialah: Apakah WSGI itu juga dipanggil antara muka gerbang universal pelayan web, dan nama penuhnya ialah antara muka webservergateway? Ia mentakrifkan piawaian untuk cara pelayan web dan aplikasi web harus berkomunikasi dan mengendalikan permintaan dan respons http dalam Python Perhatikan bahawa ia hanyalah protokol, atau spesifikasi atau piawaian ini pelayan yang kami tulis dalam artikel sebelum ini. WSGI juga dibahagikan kepada aplikasi dan gateway pelayan Antaranya, Flask yang terkenal adalah milik aplikasi, dan uWSGI dan wsgiref tergolong dalam gateway pelayan. Perasaan peribadi, WSG

Pengenalan kepada Caddy Caddy ialah pelayan web yang berkuasa dan berskala tinggi yang pada masa ini mempunyai 38K+ bintang di Github. Caddy ditulis dalam bahasa Go dan boleh digunakan untuk pengehosan sumber statik dan proksi terbalik. Caddy mempunyai ciri-ciri utama berikut: Berbanding dengan konfigurasi kompleks Nginx, konfigurasi Caddyfile asalnya adalah sangat mudah secara dinamik melalui AdminAPI yang disediakannya, ia menyokong konfigurasi HTTPS automatik secara lalai, dan boleh memohon sijil HTTPS secara automatik; dan konfigurasikannya; ia boleh dikembangkan kepada data Berpuluh-puluh ribu tapak boleh dilaksanakan di mana-mana tanpa kebergantungan tambahan yang ditulis dalam bahasa Go, keselamatan memori lebih terjamin. Pertama sekali, kami memasangnya terus dalam CentO

Menggunakan Jetty7 untuk Pemprosesan Pelayan Web dalam Pembangunan JavaAPI Dengan pembangunan Internet, pelayan Web telah menjadi bahagian teras pembangunan aplikasi dan juga menjadi tumpuan banyak perusahaan. Untuk memenuhi keperluan perniagaan yang semakin meningkat, ramai pembangun memilih untuk menggunakan Jeti untuk pembangunan pelayan web, dan fleksibiliti dan skalabilitinya diiktiraf secara meluas. Artikel ini akan memperkenalkan cara menggunakan Jetty7 dalam pembangunan JavaAPI untuk We

Benteng penghalang muka bermakna sebilangan besar benteng terapung tanpa menyekat orang dalam video, menjadikannya kelihatan seperti terapung dari belakang orang itu. Pembelajaran mesin telah popular selama beberapa tahun, tetapi ramai orang tidak tahu bahawa keupayaan ini juga boleh dijalankan dalam penyemak imbas Artikel ini memperkenalkan proses pengoptimuman praktikal dalam rentetan video penyelesaian ini, dengan harapan dapat membukanya beberapa idea. mediapipeDemo (https://google.github.io/mediapipe/) menunjukkan prinsip pelaksanaan rentetan penyekat muka arus perdana atas permintaan sehingga pengiraan latar belakang pelayan video untuk mengekstrak kawasan potret dalam skrin video dan menukarnya kepada storan svg klien semasa memainkan video Muat turun svg dari pelayan dan gabungkannya dengan rentetan, potret

Pertama sekali, anda akan ragu-ragu, apakah itu frp? Ringkasnya, frp ialah alat penembusan intranet Selepas mengkonfigurasi klien, anda boleh mengakses intranet melalui pelayan. Sekarang pelayan saya telah menggunakan nginx sebagai laman web, dan hanya terdapat satu port 80. Jadi apakah yang perlu saya lakukan jika pelayan FRP juga mahu menggunakan port 80? Selepas membuat pertanyaan, ini boleh dicapai dengan menggunakan proksi terbalik nginx. Untuk menambah: frps ialah pelayan, frpc ialah pelanggan. Langkah 1: Ubah suai fail konfigurasi nginx.conf dalam pelayan dan tambahkan parameter berikut pada http{} dalam nginx.conf, server{listen80

Pengesahan borang adalah pautan yang sangat penting dalam pembangunan aplikasi web Ia boleh menyemak kesahihan data sebelum menyerahkan data borang untuk mengelakkan kelemahan keselamatan dan ralat data dalam aplikasi. Pengesahan borang untuk aplikasi web boleh dilaksanakan dengan mudah menggunakan Golang Artikel ini akan memperkenalkan cara menggunakan Golang untuk melaksanakan pengesahan borang untuk aplikasi web. 1. Elemen asas pengesahan borang Sebelum memperkenalkan cara melaksanakan pengesahan borang, kita perlu mengetahui apakah elemen asas pengesahan borang. Unsur bentuk: unsur bentuk ialah

Kokpit ialah antara muka grafik berasaskan web untuk pelayan Linux. Ia bertujuan terutamanya untuk memudahkan pengurusan pelayan Linux untuk pengguna baharu/pengguna pakar. Dalam artikel ini, kami akan membincangkan mod akses Cockpit dan cara menukar akses pentadbiran kepada Cockpit daripada CockpitWebUI. Topik Kandungan: Mod Kemasukan Kokpit Mencari Mod Akses Kokpit Semasa Dayakan Capaian Pentadbiran untuk Kokpit daripada CockpitWebUI Melumpuhkan Capaian Pentadbiran untuk Kokpit daripada CockpitWebUI Kesimpulan Mod Kemasukan Kokpit Kokpit mempunyai dua mod capaian: Capaian Terhad: Ini adalah lalai untuk mod capaian kokpit. Dalam mod akses ini anda tidak boleh mengakses pengguna web dari kokpit
