ローカルストレージが安全でないのはなぜですか?セキュリティ リスクと予防策を理解するには、具体的なコード例が必要です。
はじめに:
Web アプリケーションの開発と普及に伴い、ローカル ストレージ (localstorage) は、保存および管理するための重要な方法の 1 つになりました。データ。 。ただし、データの永続性と利便性において比類のない利点があるにもかかわらず、ローカルストレージのセキュリティについては非常に議論の余地があります。この記事では、ローカルストレージのセキュリティリスクを調査し、ユーザーデータを保護するための予防策の具体的なコード例をいくつか紹介します。
パート 1: セキュリティ リスク
サンプル コード:
// 恶意脚本注入示例 // 数据存储 localStorage.setItem('username', '<script>alert("XSS Attack");</script>'); // 数据恢复 document.getElementById('username').innerHTML = localStorage.getItem('username');
サンプル コード:
// CSRF攻击示例 // 伪造请求 var xhr = new XMLHttpRequest(); xhr.open('POST', 'https://target-website.com/delete', true); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.setRequestHeader('Authorization', 'Bearer ' + localStorage.getItem('user_token')); xhr.send(JSON.stringify({id: '123456'}));
パート 2: 予防策
サンプル コード:
// 输入验证和过滤示例 function validateInput(input) { return input.replace(/<script.*?>.*?</script>/gi, ''); } // 存储过滤后的数据 localStorage.setItem('username', validateInput('<script>alert("XSS Attack");</script>'));
サンプルコード:
// CSRF令牌示例 // 生成令牌 var csrfToken = generateToken(); // 存储令牌 localStorage.setItem('csrf_token', csrfToken); function generateToken() { // 生成随机字符串 var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; var token = ''; for(var i = 0; i < 20; i++) { token += characters.charAt(Math.floor(Math.random() * characters.length)); } return token; } // 发送请求时添加令牌 var xhr = new XMLHttpRequest(); xhr.open('POST', 'https://target-website.com/delete', true); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.setRequestHeader('Authorization', 'Bearer ' + localStorage.getItem('user_token')); xhr.setRequestHeader('X-CSRF-Token', localStorage.getItem('csrf_token')); xhr.send(JSON.stringify({id: '123456'}));
結論:
ローカルストレージにはデータの永続性と利便性の点でかけがえのない利点がありますが、そのセキュリティについては真剣に考慮する必要があります。入力検証とフィルタリングを強化し、CSRF トークンなどの予防策を使用することで、ユーザー データのセキュリティを効果的に保護できます。 Web 開発者にとって、ユーザー情報のセキュリティを保護するために、ローカルストレージのセキュリティ リスクと予防策を理解することは非常に重要です。
以上がローカルストレージのセキュリティ問題を調査する: セキュリティのリスクと予防策を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。