taka-123 / VeggieShop

0 stars 0 forks source link

クロスサイトスクリプティング(XSS)対策 #3

Open taka-123 opened 4 years ago

taka-123 commented 4 years ago

商品管理画面において、 入力フォームに「タグインジェクション」の脆弱性が認められるので、XSSの対策をしたい。

taka-123 commented 4 years ago

html > view > admin_view.php ファイルの63行目以降、 商品情報を表示させているコード(print ~)のところで、 issue#1で作成した関数hを利用して「htmlタグのエスケープ処理」を行えば良さそう。

明日(4/14)からissue/3ブランチを作成し、そこで実装していきたい。

primestyleus commented 4 years ago

@taka-123 そうですね、admin_view.phpに適用したいですね。エスケープ処理は他にも必用な場所がありますので、他のviewファイルについても確認してみてください。

taka-123 commented 4 years ago

www > html > view > ●admin_view.php(管理画面)  l66(商品一覧テーブルの、各「商品名」の表示)  print($item['name']) → print(h($item['name]'))

●cart_view.php(カート画面)  l31(購入予定商品の、各「商品名」の表示)  print($cart['name']) → print(h($cart['name]'))

●finish_view.php(購入完了画面)  l30(購入商品の、各「商品名」の表示)  print($cart['name']) → print(h($cart['name]'))

●index_view.php(商品一覧画面)  l23(商品一覧の、各「商品名」の表示)  print($item['name']) → print(h($item['name]'))

taka-123 commented 4 years ago

「画像、金額、数量、ログイン済みページヘッダーのユーザ名」の各表示時も検討しましたが、 これらはフォーム入力の際(情報送信時)にエラーチェック されているので、表示の際のエスケープ処理は省略しても良いでしょうか?

primestyleus commented 4 years ago

@taka-123 そうですね、金額等は大丈夫ですが、ひとつの考えとして、漏れがないよう、すべてエスケープ処理を適用しても大丈夫です。

primestyleus commented 4 years ago

@taka-123 こちらは実装すすめていただいて大丈夫ですので、完了したらcommit&push とプルリクをお願いします。

taka-123 commented 4 years ago

@primestyleus スクリーンショット 2020-04-15 0 08 08 最初、「git add -A」の後、一度Enterを押すのを忘れて続けて次行に「git commit」として、まとめてEnterキーを押してしまい、操作が止まらなくなった為強制終了しました。 その後、変更点の中に、今回の変更(h関数の使用)ではないものが含まれていたため、その変更を破棄した後、改めて「git add -A」→「git commit」としたところ添付のようにエラーになってしまいました。。

taka-123 commented 4 years ago

@primestyleus 今、改めて実行したらcommit, pushできたので送信いたしました。 お騒がせいたしました。 ご確認ください。