Memahami Kod yang Disediakan dalam Respons JSON Google
Google kerap menambahkan kata pengantar "while(1);" kepada permulaan respons JSON peribadinya. Amalan ini telah menimbulkan persoalan tentang tujuannya.
Mencegah Rampasan JSON
Sebab utama kod yang diprapendi ini adalah untuk menggagalkan rampasan JSON. Rampasan JSON ialah kerentanan keselamatan yang membenarkan penyerang mengakses data sensitif dengan memasukkan skrip berniat jahat dalam respons JSON menggunakan skrip luaran. Dengan menambahkan "while(1);", Google menghalang skrip daripada berjalan secara automatik, kerana kod memasuki gelung tak terhingga.
Butiran Teknikal
Rampasan JSON dilaksanakan dengan memanfaatkan fakta bahawa penyemak imbas membenarkan tapak web mengubah tingkah laku kaedah objek global "Array" dan "Fungsi" secara dinamik. Oleh itu, penyerang boleh menetapkan atribut respons khusus bagi objek dan melaksanakan kod arbitrari.
Sintaks Alternatif
Selain "while(1);", Google juga menggunakan variasi dalam perkhidmatan yang berbeza:
Variasi ini mempunyai tujuan yang sama untuk mencegah rampasan JSON dan mempromosikan penghuraian JSON yang selamat.
Pelayar Keserasian
Rampasan JSON telah ditangani dalam semua penyemak imbas utama sejak 2011 melalui Dasar Asal Sama ECMAScript 5, yang mengehadkan skrip dari asal yang berbeza daripada mengakses data. Walau bagaimanapun, kod yang disediakan menyediakan lapisan perlindungan tambahan terhadap kemungkinan kelemahan dalam penyemak imbas lama atau tapak web yang tidak mematuhi.
Atas ialah kandungan terperinci Mengapakah Google Prepend \'while(1);\' pada Respons JSONnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!