XSS(クロスサイトスクリプティング)が発生してしまう理由が分かりません。
大学の課題でWebアプリケーションを作りました。教授にチェックしてもらったところXSS(クロスサイトスクリプティング)があると言われました。
発生箇所はスクリプトタグ内の関数でユーザの入力値を引数として動的にページを生成します。
その際に「"-alert(555)-"」という入力値を設定するとalert文がブラウザに表示されます。
・ダブルクォーテーションは文字列を閉じるためなど、構文を崩すために使われる。(エスケープされていないのが根本的に悪い)
・scriptタグ内なのでalert分が使える。
のは分かるのですがalertの前後にある「-」(ハイフン)の意味が分かりません。
ハイフンが無いとalert文は表示されません。
teratailの他の方の質問の答えに
・引き算です。
・評価する段階でアラートが表示され、戻り値のundefinedに化けると考えたらいい
と書いてあるのですが、
・ハイフンが演算子の引き算として機能して何がまずいのでしょうか
・戻り値のundefinedに化けたら、なぜalert文が成立してしまうのでしょうか。
javascriptも大学の授業で触っているだけ、セキュリティはイマイチ分からないという初学者なので
面倒でも根本から分かりやすい説明がいただけると幸いです。
よろしくおねがいします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/13 03:48 編集