はじめに
以下2行追記です。
もし、XSSがあるか調べたい時どのように調べればいいだろうのヒントになればと以下記事作成しました!
(ここではコード視点というより実際に何かを入力して見つけるみたいなものです。)
https://qiita.com/sachiko-kame/items/d6128c0674a75f5ec809
XSSのチェックのためにどんなもの打ち込めばいいの?
本当にそれ攻撃のコードとして機能しているの?
この対策だけで問題ないかを自分で打ち込んで確認したいのだが、、
みたいな私の中の住人達のモヤモヤがあったので作ってみました!のご紹介記事となります!
基本github参考でよろしくお願いします!
このパターン抜けてない?みたいのあれご指摘よろしくお願いいたします!
あとコード等少し微調整しているので少し動画とか違います。ご了承ください。
注意
docker使ったことがないや、Dockerで使用しているipアドレスとかよく分からないだとgithubだけではちょっと説明不足かと思っています。すみません。(実際起動してコードいじりたい方は的なやつです)
実際のリポジトリ
実際確認してる動画
以下に動画でも上げています。
https://github.com/sachiko-kame/XSSPHPSample/issues/1
攻撃コードサンプル(githubの方にも記載)
<script>alert('aa')</script>
<p style="background-color: red;">aaaa</p><script>alert('aa')</script>
1 onclick=alert('aa');
javascript:alert('aa')
XSS基本どんなこと気をつけるべき?
エスケープ忘れない
""とか囲っているものとかは"のエスケープも忘れず
URLのチェック忘れない。
特殊文字として機能しているものとかのエスケープも忘れずに
属性値は必ずダブルクォートで囲む
@ockeghem さんにご指摘いただけたので内容追加させていただきました!ヽ(´▽`)/ありがとうございます!!!!!
属性値
とは、以下の場合『aaaa』の箇所です!
<input type="button" value="aaaa">
更なる補足説明。
属性値がダブルクォート『"』で囲まれている例
<input type="button" value="aaaa">
属性値がダブルクォート『"』で囲まれていない例
<input type="button" value=aaaa>
色々なリンクの参考(githubの方にも記載)
dockerファイルイメージについて
https://hub.docker.com/_/php
dockerファイルコマンド[build]
https://docs.docker.jp/engine/reference/builder.html
悪意あるスクリプト参考
https://www.tohoho-web.com/ex/xss.html
ipaのリンクも
https://www.ipa.go.jp/files/000017316.pdf
最後に
記事みてくださいましてありがとうございます!ヽ(´▽`)/