投稿

1月, 2021の投稿を表示しています

1月12日(火)1、2コマ目

イメージ
今日、やったこと エラーページ まとめ 今日のホワイトボード 例外がスローされると 今まで、検査例外、実行時例外いずれも キャッチする目的がないなら、キャッチせずに上位にスロー を基本ポリシーにしていました。 ただ、このままでは最終的にはエラーページ(スタックトレース画面)が表示されます。 このスタックトレース画面にはシステム構成に係る内容がふくまれることがあるため、そのまま表示することはセキュリティ的に問題があります。 図 エラー出力時 エラーページを設定する エラーが発生したら指定されたエラーページを表示する仕組みが用意されています。この仕組みを使ってスタックトレース画面を出力しないようにします。 図 エラーページと設定ファイル「web.xml」  まとめ Webアプリケーション作成時に実行すべき内容をまとめました。 入力チェック かならずチェックすること。基本的に「利用者はセキュリティ的に問題のある入力をする」が大前提。 Cookie Webブラウザがデータを保存する仕組み。 図 まとめ① 出力の無害化(サニタイジング) ユーザー入力内容やデータベースから取得したデータをそのまま出力しない。 HTMLタグはHTMLタグとして出力しない。 ユーザーの権限に応じたページを出力 未認証ユーザーが認証済みユーザーページに直接アクセスすることができないようすること。 図 まとめ② 課題 締め切りは1月19日(火)の2コマ目終了時 にします。

1月6日(水)1コマ目

イメージ
今日、やったこと フィルター 今日のホワイトボード 2020年末からのつづきです。「安全なWebアプリケーション構築」というタイトルで、認証を行うアプリケーションを構築してきました。 作成途中のWebアプリケーションをリハビリがてら以下のように改造してもらいました。 図 改造内容 いちおう、ソースコードです。 IndexSrvクラス(サーブレット) doPost()で認証OKなら [改造前]/WEB-INF/userinfo.jspへフォワード [改造後]SecondPageSrvへリダイレクト に改造。これで認証成功ならクライアントはSecondPageSrvへリダイレクトさせられる。 リダイレクト=>クライアントはリダイレクト先を再度リクエストする。 SecondPageSrvクラス(サーブレット) 追加。 doGet()で/WEB-INF/userinfo.jspへフォワード。 クライアントが直接アクセス可能?不可能? 主にJSPやHTMLファイルですが、どこに置くか(WebContentフォルダかWEB-INFフォルダか) で、ブラウザからアクセスできる、できないのコントロールができます。 図 クライアントが直接アクセス可能?不可能? WEB-INF以下に置いたJSP(HTMLも)はブラウザから直接アクセスできません。 WEB-INF以下のJSPの表示はサーブレット内でフォワードすることになります。 未ログインならログインページに飛ばしたい ブラウザのアドレスに2ページ目のURL(http://xxx/SecondPageSrv)を入力すると、ログインページを経由せずに2ページ目にアクセスできます。 このような未ログインの状態でログインページ以外をリクエストした場合、ログインページに飛ばしたいです。 これを実現するにはサーブレット実行前に実行されるフィルターを使って、ログイン済みかチェッ...