私が作成したテストサイトで保存されたXSSをテストしましたが、これは脆弱であるため、通常の"><script>alert('XSS')</script>
を実行しようとしたときに問題が発生します
代わりに機能しませんでした。ただし、この特定の"><script>alert("XSS")</script>
javascriptが代わりに機能します。
バックエンドコードは完全に脆弱であるため、フィルタリングやサニタイズを含めなかったため、最初は理解できませんでした。
しかし、以下に示すように、XSSコードを格納するバックエンドSQLクエリを確認しようとすると、.
UPDATE users set name = 'XSSINPUT';
上記のSQLクエリに基づいて、最初のjavascriptが機能しない理由を理解できました一重引用符で囲まれているため、JavaScriptコード全体が入力される前にSQLクエリが閉じられ、以下に示すようにSQLクエリが中断されるため
UPDATE users set name = '"><script>alert('XSS')</script>';
したがって、これにより、JavaScriptポップアップを実行できなくなります。
以下のサーバー側コードが正常に実行された場合
UPDATE users set name = '"><script>alert("XSS")</script>';
これは二重引用符で囲まれ、SQLクエリを壊さないためであり、DBがそのSQLクエリを正常に実行できるようにします。
つまり、私の質問です。私の理解は正しいですか?