Jadi saya sudah bermain-main dengan HTTP untuk bersenang-senang di telnet sekarang (yaitu hanya mengetik telnet google.com 80
dan memasukkan GET dan POST acak dengan tajuk dan sejenisnya) tapi saya menemukan sesuatu yang ditransmisikan oleh google.com di tajuk yang saya buat. tidak tahu
Saya telah mencari melalui http://www.w3.org/Protocols/rfc2616/rfc2616.html dan tidak menemukan definisi untuk header http khusus ini yang sepertinya Google semburkan:
GET / HTTP/1.1
HTTP/1.1 200 OK
Date: Wed, 01 Feb 2012 03:42:24 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Set-Cookie: PREF=ID=6ddbc0a0342e7e63:FF=0:TM=1328067744:LM=1328067744:S=4d4farvCGl5Ww0C3; expires=Fri, 31-Jan-2014 03:42:24 GMT; path=/; domain=.google.com
Set-Cookie: NID=56=PgRwCKa8EltKnHS5clbFuhwyWsd3cPXiV1-iXzgyKsiy5RKXEKbg89gWWpjzYZjLPWTKrCWhOUhdInOlYU56LOb2W7XpC7uBnKAjMbxQSBw1UIprzw2BFK5dnaY7PRji; expires=Thu, 02-Aug-2012 03:42:24 GMT; path=/; domain=.google.com; HttpOnly
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
Server: gws
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Transfer-Encoding: chunked
1000
Adakah yang tahu apa X-XSS-Protection
itu?
http
http-headers
xss
midc111
sumber
sumber
Jawaban:
X-XSS-Protection adalah header HTTP yang dipahami oleh Internet Explorer 8 (dan versi yang lebih baru). Header ini memungkinkan domain untuk mengaktifkan dan menonaktifkan "XSS Filter" dari IE8, yang mencegah beberapa kategori serangan XSS. IE8 mengaktifkan filter secara default, tetapi server dapat mematikan jika dinonaktifkan dengan pengaturan
Lihat juga http://blogs.msdn.com/b/ieinternals/archive/2011/01/31/controlling-the-internet-explorer-xss-filter-with-x-xss-protection-http-header. aspx
sumber
X-XSS-Protection:1
dan kemudian, algoritma apa yang digunakannya untuk mencegah XSS?X-XSS-Protection: 1
: Force XSS protection (berguna jika perlindungan XSS dinonaktifkan oleh pengguna)X-XSS-Protection: 0
: Nonaktifkan perlindungan XSSToken
mode=block
akan mencegah browser (IE8 + dan browser Webkit) merender halaman (alih-alih membersihkan) jika serangan refleksi XSS potensial (= tidak persisten) terdeteksi./! \ Peringatan,
mode=block
menciptakan kerentanan di IE8 ( info lebih lanjut ).Informasi lebih lanjut: http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-iv-the-xss-filter.aspx dan http://blog.veracode.com / 2014/03 / pedoman-untuk-pengaturan-keamanan-header /
sumber
0
hanya nilai aman untuk tajuk ini. Lihat stackoverflow.com/a/57802070/334451 untuk detailnya.Header respons ini dapat digunakan untuk mengonfigurasi perlindungan XSS reflektif yang dibangun agen-pengguna. Saat ini, hanya Microsoft Internet Explorer, Google Chrome dan Safari (WebKit) yang mendukung tajuk ini.
Internet Explorer 8 menyertakan fitur baru untuk membantu mencegah serangan skrip lintas situs tercermin, yang dikenal sebagai XSS Filter . Filter ini berjalan secara default di zona keamanan Internet, Tepercaya, dan Terbatas. Halaman zona Intranet lokal dapat ikut serta dalam perlindungan menggunakan header yang sama.
Tentang tajuk yang Anda poskan di pertanyaan Anda,
Header
X-XSS-Protection: 1; mode=block
memungkinkan Filter XSS. Daripada membersihkan halaman, ketika serangan XSS terdeteksi, browser akan mencegah rendering halaman.Bagaimana filter ini bekerja di IE ,
Lebih lanjut tentang artikel ini, https://blogs.msdn.microsoft.com/ie/2008/07/02/ie8-security-part-iv-the-xss-filter/
Sumber: https://msdn.microsoft.com/en-us/library/dd565647(v=vs.85).aspx
Pengembang web mungkin ingin menonaktifkan filter untuk konten mereka. Mereka dapat melakukannya dengan mengatur tajuk HTTP:
Lebih lanjut tentang header keamanan di,
Pedoman untuk Mengatur Header Keamanan
Header HTTP Keamanan - X-XSS-PROTECTION
MDN Docs X-XSS-Protection
sumber
X-XSS-Protection: 0
hanya header aman untuk fitur ini. Untuk detailnya, lihat stackoverflow.com/a/57802070/334451Anda dapat melihat di Daftar header HTTP yang bermanfaat ini .
sumber
X-XSS-Protection: 0
. Untuk detailnya, lihat stackoverflow.com/a/57802070/334451TL; DR: Semua situs web (/ aplikasi) yang ditulis dengan baik harus memancarkan header
X-XSS-Protection: 0
dan lupakan saja fitur ini. Jika Anda ingin memiliki keamanan ekstra yang dapat diberikan oleh agen pengguna yang lebih baik, gunakanContent-Security-Policy
tajuk yang ketat .Jawaban panjang:
Header HTTP
X-XSS-Protection
adalah salah satu hal yang diperkenalkan Microsoft di Internet Explorer 8.0 (MSIE 8) yang seharusnya meningkatkan keamanan situs web yang ditulis secara tidak benar.Idenya adalah untuk menerapkan semacam heuristik untuk mencoba mendeteksi refleksi serangan XSS dan secara otomatis mensterilkan serangan.
Bagian yang bermasalah dari ini adalah "heuristik" dan "dikebiri". Heuristik menyebabkan false positive dan neutering tidak dapat dilakukan dengan aman karena menyebabkan efek samping yang dapat digunakan untuk mengimplementasikan serangan XSS dan serangan DoS pada situs web yang sangat aman.
Bagian yang buruk adalah bahwa jika situs web tidak memancarkan header
X-XSS-Protection
maka browser akan berperilaku seolah-olah headerX-XSS-Protection: 1
telah dipancarkan. Bagian yang lebih buruk adalah bahwa nilai ini adalah nilai yang paling tidak aman dari semua nilai yang mungkin untuk tajuk ini!Untuk situs web aman tertentu (yaitu, situs tidak memiliki kerentanan refleksi XSS) fitur "perlindungan XSS" ini memungkinkan serangan berikut:
X-XSS-Protection: 1
memungkinkan penyerang secara selektif memblokir bagian-bagian dari JavaScript dan membuat skrip tetap berjalan. Ini dimungkinkan karena heuristik fitur ini hanyalah "jika nilai dari setiap parameter GET ditemukan di bagian skrip sumber halaman, skrip akan secara otomatis diubah dengan cara yang bergantung pada agen pengguna". Dalam praktiknya, penyerang dapat mis menambahkan parameterdisablexss=<script src="framebuster.js"
dan browser akan secara otomatis menghapus string<script src="framebuster.js"
dari sumber halaman yang sebenarnya. Perhatikan bahwa sisa halaman terus berjalan dan penyerang baru saja menghapus bagian keamanan halaman ini. Dalam praktiknya, JS apa pun di sumber laman dapat dimodifikasi. Untuk beberapa kasus, halaman tanpa kerentanan XSS memiliki konten yang direfleksikan dapat digunakan untuk menjalankan JavaScript yang dipilih pada halaman karena proses sterilisasisalah mengubah data teks biasa menjadi kode JavaScript yang dapat dieksekusi .X-XSS-Protection: 1; mode=block
memungkinkan penyerang untuk membocorkan data dari sumber halaman dengan menggunakan perilaku halaman sebagai saluran samping. Misalnya, jika halaman berisi kode JavaScript di sepanjang barisvar csrf_secret="521231347843"
, penyerang hanya menambahkan paramter ekstra misalnyaleak=var%20csrf_secret="3
dan jika halaman TIDAK diblokir,3
itu adalah digit pertama yang salah. Penyerang mencoba lagi, kali inileak=var%20csrf_secret="5
dan pemuatan halaman akan dibatalkan. Ini memungkinkan penyerang mengetahui bahwa digit pertama dari rahasia itu adalah5
. Penyerang kemudian terus menebak angka berikutnya.Pada akhirnya, jika situs Anda penuh dengan serangan refleksi XSS, menggunakan nilai default
1
akan mengurangi sedikit permukaan serangan. Namun, jika situs Anda aman dan tidak terpancarkanX-XSS-Protection: 0
, situs Anda akan rentan dengan peramban apa pun yang mendukung fitur ini. Jika Anda ingin pertahanan dalam dukungan mendalam dari browser terhadap kerentanan XSS yang belum diketahui di situs Anda, gunakanContent-Security-Policy
tajuk yang ketat . Itu tidak membuka situs Anda dari kerentanan yang diketahui.Saat ini fitur ini diaktifkan secara default di MSIE, Safari dan Google Chrome. Ini dulu diaktifkan di Edge tetapi Microsoft sudah menghapus fitur salah ini dari Edge . Mozilla Firefox tidak pernah menerapkan ini.
Lihat juga:
https://homakov.blogspot.com/2013/02/hacking-facebook-with-oauth2-and-chrome.html https://blog.innerht.ml/the-misunderstood-x-xss-protection/ http: / /p42.us/ie8xss/Abusing_IE8s_XSS_Filters.pdf https://www.slideshare.net/masatokinugawa/xxn-en https://bugs.chromium.org/p/chromium/issues/detail?id=396544 https: // bugs.chromium.org/p/chromium/issues/detail?id=498982
sumber