1. Pengenalan
Penetapan Sesi ialah teknik yang membolehkan penggodam merampas sesi pengguna. Teknik ini mengambil kesempatan daripada fakta bahawa pelayan tidak mengubah nilai ID sesi setiap kali pengguna log masuk, sebaliknya ia menggunakan ID sesi yang sedia ada. Proses serangan termasuk mendapatkan ID sesi yang sah (mungkin dengan mengakses tapak web ), kemudian mencari jalan untuk mangsa log masuk ke tapak web dengan ID sesi ini, dan akhirnya, apabila mangsa berjaya log masuk. , penggodam akan menyemak imbas laman web dengan akaunnya. Senario khusus adalah seperti berikut:
Mallory menemui tapak web, seperti http://unsafe.example.com, yang menerima sebarang ID sesi daripada permintaan tanpa pengesahan.
Mallory akan menghantar e-mel kepada Alice, yang mengandungi pautan http://unsafe.example.com/?SID=1234.
Alice pergi ke http://unsafe.example.com/?SID=1234. Kemudian log masuk ke laman web.
Mallory hanya pergi ke http://unsafe.example.com/?SID=1234, dan menggunakan tapak web dengan akaun Alice.
Mallory boleh menggunakan kaedah berikut untuk menetapkan kuki untuk Alice:
Sertakan skrip untuk menetapkan kuki
Hantar paket Respons HTTP dengan nilai kuki MalloryHantar paket Respons HTTP dengan nilai kuki Mallory
Gunakan tag meta HTML:

2. Contoh
Contoh 1 – Penskripan sisi pelanggan
Sama seperti senario yang dinyatakan di atas, walau bagaimanapun, dalam kes ini, ID Sesi tidak dihantar dalam URL tetapi dalam kuki. Untuk mengedit nilai ID Sesi dalam kuki mangsa, penggodam akan memasukkan sekeping Javascript:
http://website.kom/document.cookie=”sessionid=abcd”;
Contoh 2 - tag
Sama seperti skrip sebelah pelanggan, tetapi kali ini penggodam akan memasukkan tag tambahan:
http://website.kon/
Contoh 3 – Respons pengepala HTTP
Penyisipan ID Sesi juga boleh dilakukan dengan memintas paket yang ditukar antara klien dan aplikasi Web, kemudian memasukkan medan Set-Cookie ke dalam pengepala.
![Web12: Teknik penggodaman Penetapan Sesi Web12: Teknik penggodaman Penetapan Sesi]()
3. Cara mencegah
Punca ralat ini adalah kerana pelayan tidak menjana semula ID sesi selepas setiap log masuk yang berjaya. Oleh itu, membetulkan ralat ini tidak sukar, kita hanya perlu menukar nilai ID Sesi dan itu sahaja. Dalam PHP, kami menggunakan fungsi session_regenerate_id() untuk menjana semula sesi.