アーシの毎日インプット

毎日1つ以上学習する。学習した内容を公開する。を目標に自分のスキルアップを目指します。

セキスペCheck:Javaの概要とプログラミング上の留意点

スポンサードリンク

今回も情報処理安全確保支援士の試験勉強の内容をアウトプットをしていきます。

 

勉強に使ったのはこちら

章の終わりにあるCheck問題に私なりの答えで解答していきます。

 

今回は8.3章:Javaの概要とプログラミング上の留意点のCheck問題です。

 

【Q1】Javaのメモリ管理上の特性について述べよ。

不要になったメモリ領域をシステム側で自動的に解放するガベージコレクションという機能が存在し、プログラマがメモリを管理する負担が減っている。

 

【Q2】サンドボックスモデルとはどのようなものか。

ネットワークなどを通じて外部から受け取ったプログラムをセキュリティが確保された領域で動作させることによってプログラムが不正な操作や動作をするのを防ぐ仕組み。

 

【Q3】ポリシの設定におけるセキュリティ上の留意点として何があるか。

ポリシ設定では各コードがどのようなアクセス権を使用できるかを指定できる。
署名者やコードの場所の情報は省略可能であるが、省略することは全てを許可すると同義であるため、Securityプロパティを署名の有無やコードの出所に関わらず操作できる状況になる。

 

【Q4】フィールドを不正や誤りによる書換えから防ぐにはどうするべきか。

フィールドをprivate属性にして隠蔽するとともに、フィールドを操作するメソッドを作成し、当該フィールドへのアクセスはメソッドを介して行うようにする。
その際、書き込みを行うメソッドを提供しないことで書き換えを実施できなくする。

 

【Q5】レースコンディションとは何か、どのような対策があるか。

レースコンディションとは並列して動作する複数のプロセスやスレッドが同一のリソースへほぼ同時にアクセスしたときに競合状態が引き起こされ、それによって予想外の処理結果となること。
対策としては、例えば、アクセスするリソースがデータベースの場合はリソース取得時点でレコードへロックをかけるか、更新時にレコードが読み取りから更新までの期間で別の更新がなされていないかをチェックするなどがある。
なお、レースコンディション自体はJava特有の問題ではなく、他のプログラミング言語でも発生する。

 

【Q6】不正なクラスの継承を防ぐにはどうする必要があるか。

final属性を指定する。

 

 

私が使っているのは2022年版のテキストですが、2024年版も出ています。

【アーシの原点】

【頭を鍛える迷路集】


スポンサードリンク