Kerentanan keselamatan dalam storan setempat dan cara menyelesaikannya
Dengan perkembangan Internet, semakin banyak aplikasi dan tapak web telah mula menggunakan API Storan Web, yang mana storan setempat adalah yang paling biasa digunakan. Penyimpanan setempat menyediakan mekanisme untuk menyimpan data pada bahagian pelanggan, mengekalkan data merentas sesi halaman tanpa mengira akhir sesi atau muat semula halaman. Walau bagaimanapun, hanya kerana kemudahan dan aplikasi storan setempat yang meluas, ia juga mempunyai beberapa kelemahan keselamatan, yang mungkin menyebabkan maklumat sensitif pengguna dibocorkan atau digunakan secara berniat jahat.
Pertama sekali, data dalam storan setempat disimpan dalam penyemak imbas dalam teks yang jelas, yang bermaksud sesiapa yang mempunyai akses kepada penyemak imbas boleh terus melihat dan mengubah suai data yang disimpan. Oleh itu, untuk maklumat sensitif seperti kata laluan, maklumat kad kredit, dsb., adalah lebih baik untuk tidak menyimpannya terus dalam storan setempat, tetapi menyulitkannya sebelum menyimpannya.
Kedua, sebab lain mengapa localstorage mempunyai risiko keselamatan ialah semua skrip di bawah nama domain yang sama boleh mengakses dan mengubah suai data localstorage. Ini bermakna jika skrip berniat jahat terdapat dalam tapak web, ia boleh mendapatkan dan mengusik data yang disimpan dalam storan setempat oleh skrip sah lain. Untuk mengelakkan situasi ini daripada berlaku, kami boleh mengambil langkah berikut:
Kod sampel adalah seperti berikut:
Fungsi penyulitan:
function encryptData(data, key) { // 使用AES算法对数据进行加密处理 // ... return encryptedData; }
Fungsi penyahsulitan:
function decryptData(encryptedData, key) { // 使用AES算法对数据进行解密处理 // ... return decryptedData; }
Menyimpan maklumat sensitif:
var sensitiveData = { username: 'example', password: 'example123' }; var encryptedData = encryptData(JSON.stringify(sensitiveData), 'encryption-key'); localStorage.setItem('encryptedSensitiveData', encryptedData);
Mendapatkan dan menyahsulitkan maklumat sensitif di atas
var encryptedData = localStorage.getItem('encryptedSensitiveData'); var decryptedData = decryptData(encryptedData, 'encryption-key'); var sensitiveData = JSON.parse(decryptedData); console.log(sensitiveData.username);
Atas ialah kandungan terperinci Kaedah untuk menyelesaikan kelemahan keselamatan storan setempat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!