以下1番目のようなコードがあり、悪意のあるユーザーが入力するユーザ名などにスクリプトなどが埋め込まれていた場合、ブラウザは何の疑いもなくそのスクリプトを実行してしまうので
セキュリティ上問題なのは、よくわかるのですが
2番目のコードについてはボタンをクリックして要素の再構築をしている部分で悪意があるユーザーがtext-msg.innerHTMLの部分にscriptを入れてしまうので、サニタイズが必要になると授業で習ったのですがいまいちよくわかりません。
どうやってユーザー入力もない部分のtext-msg.innerHTML = "タグの中身を変更しました!"という内部コードをいじれるのでしょうか?
javascript
1 2 3const { username, password } = await api.getUser(); 4const userInfo = document.createElement('div'); 5userInfo.innerHTML = `${username}, ${password}`; 6
html
1 2<div id="text-msg"> 変更前</div> 3<input type="button" value="Click" onclick="myfunc()"> 4 5 <script> 6 const myfunc = function(){ 7 8 const text_msg = document.getElementById("text-msg"); 9 text_msg.innerHTML = "タグの中身を変更しました!"; 10 11 } 12 </script> 13 14
回答2件
あなたの回答
tips
プレビュー