スマートフォン・ジン | Smartphone-Zine

引っ越し先→ https://smartphone-zine.com/

Web開発するときに気になること

入力値の妥当性チェック
 サーバで必ず行う
 クライアントでの入力値チェックはユーザビリティの向上させる必要がある場合に実施する。
HTML出力時には特殊記号をエスケープ処理するクロスサイトスクリプティングを防ぐ為にサニタイジング
 Strutsのbeen:write または JSTLのc:out を使用すること。このタグはHTMLの特殊記号( < > , " ' & )を変換する機能を持つ。
SQL出力時にはバインドメカニズムを利用してSQLインジェクションを防ぐ
 プレースホルダとして「?」記号を使用しSQL文をあらかじめコンパイルしておくこと。
外部コマンド呼び出し時の妥当性チェック
http://www.atmarkit.co.jp/fsecurity/rensai/webhole02/webhole02.html
ファイル名指定時の妥当性チェック
 任意の場所にファイルをアップロードされる事がないように、ファイル名に使用される記号をサニタイジングする。
できれば通信は全てSSLで保護する。
セキュアモードCookieの利用 WebLogicの設定の場合、
 weblogic.xml デプロイメント記述子の、
 cookie-secureをtrueに設定する。
 クッキーを HTTPS 接続でのみ返信するようブラウザに指示する。これにより、クッキー ID が保護され、HTTPS を使用する Web サイトでのみ使用されるようになる。この機能を有効にすると、HTTP でのセッション クッキーは機能しなくなる。
安全なセッションIDの使用
 セッションID用のcookieの生成・維持はWebLogicサーバによって自動的に行われます。
アクセス権限のチェック
 チェックしましょう。
セッションタイムアウトの設定
 セッションは一定時間が過ぎると切断されるように設定する。長期(例えば1日以上)のセッション保持は行わない。
Cookieの有効ドメイン範囲制限
 Cookieの有効度メイン範囲は必ず限定しCookieの漏洩を防ぐ。
Cookieのハードディスクへの保存禁止。有効期限を指定しない事
 Weblogicではデフォルトでユーザがブラウザを終了すると期限が切れるようにクッキーが設定されているので問題ありません。
認証後に、新たなセッションIDを発行する事。ログインページではセッションIDを発行しない
セッションIDをGETメソッドで送らない
 CookieによるセッションIDの管理を行う。
脆弱なパスワードの拒否
ログイン、リトライ可能回数の制限
 本案件ではユーザ名、パスワードでのログインは行わない。
平文パスワード保存の禁止
 DBに保存するパスワードはハッシュ化しましょう。
秘密情報は画面へ表示しない
 秘密情報は画面へ表示しない事。表示しなければならない場合、マスクして表示するなどの対策を行う。
本番環境にソースファイルやバックアップファイルなど不要なファイルを置かない。
 アタックの足がかりになることがあります。
管理機能へのアクセス制限、原則、インターネット経由でのアクセスを禁止する
Webアプリケーションアセスメントの実施
 「セキュリティアセスメントサービス」等を受けるようにする。
Webシステムペネストレーションテストの実施
 コンピュータやネットワークのセキュリティ上の弱点を発見するテスト手法の一つで、システムを実際に攻撃して侵入を試みる手法。実際にWebサーバへアクセスしアタックを行いセキュリティホールが存在しないか確認する。