Rumah > Artikel > hujung hadapan web > Kaedah serangan biasa pada bahagian hadapan web dan kaedah untuk menghalang attacks_HTML/Xhtml_Pengeluaran halaman web
Keselamatan yang dihadapi dalam pembangunan bahagian hadapan tapak web mudah diabaikan oleh orang ramai, kerana kebanyakan orang berpendapat bahawa kod ini yang dijalankan dalam penyemak imbas klien tidak akan menyebabkan risiko keselamatan bahagian pelayan Artikel ini akan menerangkan secara ringkas isu keselamatan yang sering dihadapi bahagian hadapan laman web , dan beberapa strategi mengatasi
Dengan perkembangan teknologi bahagian hadapan, isu keselamatan telah datang secara senyap-senyap kepada setiap pengguna daripada pelayan, mencuri data pengguna, mencipta kod cacing yang mereplikasi diri berniat jahat, membenarkan virus merebak di kalangan pengguna dan menyebabkan pelayan Digugurkan. Lebih-lebih lagi, pengguna mungkin menjadi penyerang tanpa diketahui oleh pengguna. Ini pastinya tidak mengejutkan. Aplikasi pelanggan kaya menjadi semakin meluas, dan isu keselamatan bahagian hadapan juga semakin meningkat Hari ini saya akan memperkenalkan secara ringkas beberapa kaedah dan kaedah serangan biasa untuk mencegah serangan.
Serangan Biasa
XSS (Skrip Silang Tapak), serangan skrip merentas tapak. Ia merujuk kepada penyerang berniat jahat memasukkan kod HTML berniat jahat ke dalam halaman Web Apabila pengguna menyemak imbas halaman, kod HTML berniat jahat yang dibenamkan akan dilaksanakan, dengan itu mencapai tujuan khas pengguna berniat jahat. XSS adalah serangan pasif Kerana ia pasif dan sukar untuk dieksploitasi, ramai orang sering mengabaikan bahayanya. Walau bagaimanapun, dengan kemajuan berterusan teknologi bahagian hadapan dan peningkatan bilangan aplikasi pelanggan yang kaya, isu ini telah menarik lebih banyak perhatian. Untuk memberikan contoh mudah: Jika anda kini pengguna di tapak sns, terdapat kelemahan dalam fungsi penerbitan maklumat yang boleh melaksanakan js Jika anda memasukkan skrip berniat jahat pada masa ini, maka pelayar semua orang yang melihat maklumat baharu anda akan melaksanakan skrip ini dan kotak timbul akan muncul (iklan pop timbul yang sangat keren:)), jika anda melakukan beberapa kelakuan yang lebih radikal, akibatnya tidak dapat dibayangkan.
CSRF (Pemalsuan Permintaan Silang Tapak), permintaan palsu silang tapak. Seperti namanya, ia membolehkan pengguna menggunakan identiti mereka sendiri untuk mencapai beberapa matlamat yang perlu dicapai oleh penyerang dengan memalsukan permintaan sambungan tanpa pengetahuan pengguna. Serangan CSRF berbeza daripada XSS perlu dicetuskan oleh tingkah laku aktif penyerang. Ini bunyi macam ada syak wasangka "dipancing" haha.
Pelayar berbilang tetingkap nampaknya menyumbang kepada kezaliman dalam hal ini, kerana tetingkap baharu yang dibuka mempunyai semua sesi semasa Jika ia adalah tetingkap pelayar tunggal yang serupa dengan IE6, tidak akan ada masalah seperti itu, kerana setiap tetingkap mempunyai satu proses yang bebas. Mari kita berikan contoh mudah: Anda bermain White Society, dan anda melihat seseorang menghantar pautan Anda mengklik padanya, dan kemudian borang untuk menghantar hadiah dipalsukan dalam pautan ini. Ini hanyalah contoh mudah, dan masalahnya jelas .
Rampasan kuki, dengan mendapatkan kebenaran halaman, tulis permintaan ringkas ke tapak berniat jahat dalam halaman itu dan bawa kuki pengguna Selepas mendapatkan kuki, anda boleh menganggap identitinya secara langsung pengguna yang dicuri melalui kuki Log masuk ke tapak. Ini adalah rampasan kuki. Untuk memberikan contoh mudah: Seseorang menulis diari yang sangat menarik dan kemudiannya berkongsi dengan semua orang permintaan ke luar tapak disembunyikan dalam log Kemudian semua orang yang membaca log ini akan menghantar kuki mereka kepada seseorang tanpa mengetahuinya, dan kemudian dia boleh log masuk ke orang ini melalui akaun mana-mana orang.
Apa yang perlu kita lakukan?
Ia boleh dibahagikan secara kasar kepada dua kategori: 1. Pengguna umum 2. Pembangun laman web.
Pertama sekali, mari kita bercakap tentang itu sebagai pengguna umum produk web, banyak kali kita pasif dan dieksploitasi tanpa disedari. Kemudian kita boleh:
1 Untuk mengakses aplikasi web dengan tahap keselamatan yang lebih tinggi, anda perlu membuka tetingkap penyemak imbas yang berasingan.
2 Untuk pautan yang disiarkan oleh orang yang tidak dikenali, lebih baik menyalinnya dan membukanya dalam tetingkap baharu Sudah tentu, cara terbaik ialah mengabaikannya - -.
Untuk pembangun, kami perlu menganalisisnya dari perspektif yang agak terperinci:
Ciri serangan XSS ialah kod penyerang mesti boleh mendapatkan kebenaran pelaksanaan pada penyemak imbas pengguna. Untuk mengelakkan serangan sedemikian daripada berlaku, kami sebenarnya boleh melakukan penapisan ketat di pintu masuk dan keluar Dengan insurans berganda ini, harus dikatakan bahawa 99% masalah serupa telah kami selesaikan, dan 1% lagi adalah. sekuela yang disebabkan oleh pelayar yang buruk itu, saya percaya bahawa masalah seperti ini akan menjadi semakin berkurangan pada masa hadapan.
Di sini saya telah menyusun bentuk kelemahan xss
Nilai kod berniat jahat dipaparkan sebagai kandungan tag tertentu (jika input adalah html, html akan dihuraikan Contohnya, selepas anda memasukkan nama pengguna dan mengemas kininya, nama pengguna akan dipaparkan dalam tag tertentu pada halaman Jika anda memasukkan
popper.w
Jadi jika ia dipaparkan terus pada halaman tanpa penapisan, kod js pihak ketiga akan diperkenalkan dan dilaksanakan.
Strategie: Filtern Sie HTML-Tags und einige Sonderzeichen (" < > & usw.), bei denen keine HTML-Eingabe erforderlich ist, und konvertieren Sie sie in Zeichen, die vom Browser nicht interpretiert und ausgeführt werden
Schädlicher Code wird als Attribut eines bestimmten Tags angezeigt (durch Verwendung von „, um das Attribut zu kürzen, um neue Attribute oder bösartige Methoden zu öffnen). Diese Situation wird häufig durch Entwickler verursacht, die möglicherweise einige Informationen zu bestimmten DOM-Tags der Reihe nach aufzeichnen Um Funktionen zu implementieren, werden die vom Benutzer eingegebenen Informationen, z. B. der von Ihnen eingegebene Benutzername, in Form eines Titels im Tag auf der Seite angezeigt. Wenn Sie sorgfältig gestaltete Inhalte eingeben, sehen Sie sich dies an
Was ich hier tatsächlich eingegeben habe, ist „popper.w“ onclick="alert(1)". Natürlich können Sie oben weitere Inhalte schreiben.
Strategie: Filtern Sie einige Zeichen, die im Attribut abgeschnitten sein können. Sowohl einfache als auch doppelte Anführungszeichen, die im Attribut selbst vorhanden sind, müssen transkodiert werden.
Der Schadcode wird als HTML-Code selbst angezeigt (üblicher HTML-Editor). In dieser Situation treten die meisten Probleme auf, daher werde ich hier kein Beispiel nennen.
Strategie: Am besten filtern Sie die vom Benutzer eingegebenen HTML-Tags und Tag-Attribute auf die Whitelist. Sie können auch eine spezielle Filterung für einige anfällige Tags und Attribute durchführen.
Der Schadcode wird als JSON-String angezeigt (wodurch durch Variablenkürzung neue Schadcodes oder sogar ausführbarer Code erstellt werden). Der Schlüssel zu diesem Problem besteht darin, dass die vom Benutzer eingegebenen Informationen Teil des JS-Codes auf der Seite werden können .
Strategie: Filtern Sie einige Zeichen, die im Attribut abgeschnitten sein können. Sowohl einfache als auch doppelte Anführungszeichen, die im Attribut selbst vorhanden sind, müssen transkodiert werden.
Für CRSF- und Cookie-Hijacking
Merkmale: Hohe Verschleierung. Manchmal werden XSS-Schwachstellen zuerst ausgenutzt und dann ausgenutzt
Strategie
Erkennen Sie Benutzerbeiträge über Referrer, Token oder Bestätigungscode.
Versuchen Sie, im Link auf der Seite keine Informationen zur eindeutigen Nummer (Benutzer-ID) des Benutzers preiszugeben.
Für Benutzeränderungs-, Lösch- und Übermittlungsvorgänge verwenden Sie am besten den Post-Vorgang.
Vermeiden Sie standortweite Cookies und setzen Sie Cookies ausschließlich für die Domain.
ok, ich schreibe es einfach hier~
Die oben genannten sind einige häufige Sicherheitsprobleme, hauptsächlich aus der Perspektive des JS-Hacks. Mit der kontinuierlichen Entwicklung und dem Fortschritt der Front-End-Technologie können für Entwickler die meisten Probleme vermieden werden Das Beängstigende sind also nicht die Hacks. Was beängstigend ist, ist unsere Nachlässigkeit in Bezug auf die Sicherheit unserer Produkte.