本記事ではセキュアなコーディングを行う上で必要な知識を、別名参照問題を入り口にしてまとめています。言語には Java を用いていますが、Ruby・Python・PHP であればほとんど当てはまる…
環境変数の変更を許可しないシステムがあれば、特定の変数名や値が禁止されるシステムもあります。この理由から、オペレーティング・システムで変更が許可されていない場合にマップを変更しようとすると、UnsupportedOperationExceptionやIllegalArgumentExceptionで失敗する可能性があります。
文字列はトークナイザ(java.io.StreamTokenizer)によって処理されますが、そこでは\を使用したエスケープ文字列(改行を表す\nなど)が許されるので、単一のバックスラッシュを表すためには二重のバックスラッシュを使用する必要があります。トークナイザがFilePermissionのターゲット文字列の処理...
java.io.FileのWindows実装が変更され、ファイル・パスに対してデフォルトで厳密な妥当性チェックが実行されないようになりました。これには、1つのドライブ・レターの直後以外にも、パスにコロン(‘:’)を使用できるようにすることも含まれます。また、“filename:streamname”のような、NT...
java.io.FileのWindows実装が変更され、ファイル・パスに対してデフォルトで厳密な妥当性チェックが実行されないようになりました。これには、1つのドライブ・レターの直後以外にも、パスにコロン(‘:’)を使用できるようにすることも含まれます。また、“filename:streamname”のような、NT...
EJB コンテナーでは、JNDI 名にユーザー定義の Application Server 変数が含まれている場合に、CMP 接続ファクトリー JNDI 名を拡張できなければなりません。 カスタム・プロパティー com.ibm.websphere.ejbcontainer.expandCMPCFJNDIName を使用することで、CMP 接続ファクトリー JNDI 名を拡張す...
静的クラスのインスタンス化を防ぐため、privateキーワードを使用してコンストラクターをプライベートにします。静的クラスのプロパティが言うように、それをインスタンス化することはできません。 メンバー変数とメンバーメソッドでstaticキーワードを使用します。オブジェクトが作成されな...
セキュリティ マネージャーがインストールされている場合は、さまざまな理由でルックアップを禁止できます (下記を参照)。 これに対し、定数にldc対するCONSTANT_MethodHandle命令は、セキュリティ マネージャーのチェックの対象になりません。 検索メソッドのアリティが非常に大きい場合、メソ...
java.io.FileのWindows実装が変更され、ファイル・パスに対してデフォルトで厳密な妥当性チェックが実行されないようになりました。これには、1つのドライブ・レターの直後以外にも、パスにコロン(‘:’)を使用できるようにすることも含まれます。また、“filename:streamname”のような、NT...
行番号または変数情報が利用可能でないことを示すためにスローされます。 class ClassNotLoadedException 要求されたクラスが適切なクラス・ローダーによってロードされていないことを示すためにスローされます。 class ClassNotPreparedException 指定されたクラスがまだ準備されていないため、要...