中川雅央(なかがわまさお)  



ネットワークプログラミング
   - セキュリティを考慮したプログラムとシステム設計

←戻る
クライアントサイド
- JavaScript等
	
	不正リクエスト対策(フォーム入力データの不正防止)
		hiddenやselect等の内容も容易に変更可能
	
	多重送信の回避
		不注意で2回以上送信する多重送信を防止する
			ロック(フラグ)方式
			時間差(一定時間)方式
	
	送信ページへのアクセス順序のチェック
		正規のページを経由しているかをrefererプロパティで確認
	
	入力データのチェック
		数値欄なら数字文字列のみ通す(有効文字列のみ通す)
		危険文字列([,],|,<,>,\,;,: 等)の禁止
		HTMLタグの不許可
	
	但しJavaScript等のクライアントサイドでのチェックは厳密な防止策ではなく
	単純なミスを回避するものとして考えておく.

サーバサイド
- CGIプログラム(Perl等)
	
	POSTメソッドで受信
	
	セッション管理(ID,Cookie)
		セッションID偽装対策が必要
	
	適切なメッセージ表示
		エラーメッセージも必要最小限の情報提供にとどめておく.
	
	偽造リクエスト対策(フォーム入力データの改ざん防止)
	
	多重送信の回避
		不注意で2回以上送信する多重送信を防止する
			ロック(フラグ)方式
			時間差(一定時間)方式
	
	送信ページへのアクセス順序のチェック
		正規のページを経由しているかを確認
	
	入力データのチェック
		データは全て文字列として受信する(クォート文字処理にも注意)
		数値欄なら数字文字列のみ通す(有効文字列のみ通す)
		危険文字列([,],|,<,>,\,;,: 等)の禁止
		HTMLタグの不許可
	
サーバ設定
	
	Indexの非表示
	
	暗号化通信(SSL等)の利用
	
	CGIプログラムは専用ディレクトリに格納
	
	格納データファイルのパーミッション設定(ファイルのアクセス権)
	
	不要なネットワークサービスの停止
以上


Copyright © NAKAGAWA Masao 2005 All Rights Reserved.