料AboutJavaScriptを有効にして、ご利用ください。メソッドをオーバーライドあるいは隠蔽するときにアクセス範囲を広げないメソッドをオーバーライドあるいは隠蔽するときにアクセス範囲を広げてしまうと、悪意あるサブクラスが本来許可されていないメソッドにもアクセスできてしまう。ゆえに、プログラムは必要な場合にのみメソッドをオーバーライドし、可能な限りメソッドをfinal宣言することで、悪意あるサブクラス化を防止しなくてはならない。メソッドをfinal宣言できない場合、オーバーライドするメソッドのアクセス範囲をオーバーライドされるメソッドより広げてはいけない。以下の表に、使用可能なアクセス修飾子を示す。オーバーライドできない違反コード悪意あるサブクラスSubが、スーパクラスのdoLogic()メソッドをオーバーライドし、かつアクセス範囲を広げる様子を以下の違反コード例に示す。doLogic()はSubの親クラスSuperにおいてprotected宣言されているため、Subを使用するユーザは、doLogic()メソッドを呼び出すことができる。クラスSubは、自身のdoLogic()メソッドをpublic宣言することで、アクセス範囲を広げている。}}適合コード以下の適合コードでは、doLogic()メソッドをfinal宣言し、悪意あるオーバーライドを防いでいる。リスク評価サブクラスを作成されることでアクセス制限が緩和され、アプリケーションのセキュリティを侵害される恐れがある。L2自動検出このルールの違反を検出するのは容易である。Hiding翻訳元これは以下のページを翻訳したものです。有このページは役に立ちましたか?javascriptを有効にすると、ご回答いただけます。その他のご意見はPCサイトにて入力願います。