Tuesday, December 31, 2013

JNDI で LDAP インジェクション対策のささやかなこころみ

SQL に 「SQL インジェクション」 があるように, LDAP にも 「LDAP インジェクション」 というものがあるようです。 ただ, ネット上で調べても, SQL に比べると LDAP の事例はあまり多くは見かけない印象があります。 LDAP を利用するアプリケーションが世の中にそれほど多くないから, ということだけではなく, LDAP で利用する BIND や SEARCH や MODIFY などの構文は, 単なる文字列の組み立てだけで書くことができるわけではないから, ということも理由なのかなという気がしています。 とはいえ, 文字列の組み立てが発生しないわけでもないので, 無関心でいるよりは, 多少なりとも関心を持っておきたいとも思います。

Monday, December 30, 2013

LdapContext を close() するときのことについて

久しぶりに LDAP をさわってみています。 いろいろ忘れてしまったので, まずは手元の環境に用意した LDAP サーバー (OpenLDAP 2.4.38) に簡易認証で接続して, そのあとその接続を閉じるということから始めてみました。 そんな中で, 接続を閉じる際に, UNBIND リクエストを送らずに接続を閉じてしまうケースがあったので, それについてメモを残しておくことにしました。

Sunday, October 27, 2013

JCE を使って Diffie-Hellman をやってみる

VPN を実現するプロトコルのひとつに IPsec というものがあります. IPsec においては鍵交換プロトコルとして IKE を利用するのが一般的なのではないかと思いますが, その IKE において利用することのできる鍵交換アルゴリズムのひとつに Diffie-Hellman 鍵交換アルゴリズムがあります.

このアルゴリズムは, 大雑把に言うと, 秘密鍵を共有していない当事者間において, 各自が乱数などを使って計算して生成した値を互いに相手に送り合い, 各自が相手から受け取った値をもとに再び計算すると, 結果的に双方が同じ秘密鍵を保持することができる, というものです. 通信経路上に存在する盗聴者が当事者間でやりとりされる値だけから秘密鍵を推測することは容易ではないらしく, そのことがこのアルゴリズムの効能となっています.

Sunday, October 20, 2013

複数の要素と複数の属性 - JAXB 入門的な何か

きょうは JAXB (Java Architecture for XML Binding) のことについて少し書き留めておこうと思います. 全然大したことを書こうというつもりはなく, ただ単に XML って何? 的な状態の者が JAXB クラスを触り始めたところで気づいたことを 2 点ばかりメモ書きしておこうと思った, 程度のことです.

Thursday, October 10, 2013

ListResourceBundle は注意して使ったほうがいいのかな

前回の 記事 (Oct 7, 2013) の続きです. ListResourceBundle というものの存在を知って, これはおもしろそうだなあと思ったまではいいけれど, 少しさわってみたりしていますと, いろいろ気をつけないといけない点もありそうだな, というのを感じるようになってきました.

Monday, October 7, 2013

リソースバンドルについて

久しぶりにブログを書いてみたいと思います.

国際化のためのリソースを取り扱うということで, ResourceBundle クラスについて少し勉強しています. いままで, せいぜい Properties クラスにロケールが追加された程度のものかなと勝手に思い込んでいましたが, それだけでもないことをいまさらながら知りました.

Sunday, February 24, 2013

ふりかえり

30代後半になってはじめて転職し, 業務用アプリケーションの世界に入り, 言語としてはおもにJavaを勉強してきましたが, 40を過ぎて, そろそろ馬脚も露わになってきた気がします. もともと営業職として採用されたらしいことをつい最近知りまして, いろいろ思い返してみました.

転職してからアプリケーションのこと (特にプログラミングのこと) をいろいろ勉強したおかげで仕事の効率も上がったものとずっと思ってきました. が, 実は下手に知恵をつけてしまったおかげで, 本社に対しては, 売り上げの増加につながらないような不具合修正を説得力ある方法で強いることが可能となり, 結果として日本市場だけは多大な間接経費のため赤字となってしまいました. また, 取引先 (販売代理店) さんに対しては, 一方では 「どんな些細な仕事もこいつに押し付けておけばいいさ」 という丸投げ体質を助長してしまった面と, 他方では 「あとから来た者が技術力をつけて俺を馬鹿にしやがって」 という悪感情を醸成してしまった面と, 両方があるような気がしています.

最初から, わたしが参入せず, 本社と取引先さんが直接やりとりしていれば, おたがいに売り上げはないけれど損失もないという予定調和な均衡が維持されたのかもしれません. 特にアプリケーションの世界では, 30代になってからは仕事で生かすための勉強などという都合のよいことは考えないほうが, 他人の迷惑にならずに済むようなところがありそうです. あくまで土日の趣味の領域に限ったほうがいい. 世間でプログラミングをおこなうのは20代のうちで終わらせ, 30代になったら人を使う側にならなければだめだと言われているのは, 当人たちの生き方としてだけでなく, 当人を囲む周囲の都合からしても, 実は重要なことだったりもするのかもしれないと感じてきました.

以上, 敗戦の弁でした.

Wednesday, February 20, 2013

Alias よりも Location が優先する

ささいな話です. Apache HTTP Server の設定において, AliasLocation のどちらが優先するか, という話です.

Sunday, February 17, 2013

Debian に MySQL 5.6 系をソースからインストールします

最近 MySQL が 5.6 系も 「一般提供開始」 (出典) となったそうですので, 久しぶりに少し触ってみようかと思い, インストールをおこなってみました.

ビルド済みのバイナリをインストールするということは以前にもやったことがありまして, Debian に MySQL をインストールしてみます という記事 (Apr 15, 2012) に簡単に書いたことがありました. 今回はソースからビルドしてインストールするということをやってみました.

Monday, February 11, 2013

Theories で ParametersSuppliedBy を使う

これは 昨日の記事 の続きです. その後, Theories ランナーには, @DataPoints などを使うパターンとは別に @ParametersSuppliedBy などを使うパターンがあることを知りました.

Sunday, February 10, 2013

Theories と Parameterized について思うこと

最近の JUnit は, GitHub 上では Kent Beck さんの手を離れて junit-team さんに移管されたようですね. ご自身も そういう内容のツイート (Feb 6, 2013) をされていました. JUnit の公式 (?) ページ (www.junit.org とか junit.sourceforge.net とか) や Google などの検索結果にそれが反映されるには, しばらく時間がかかりそうではありますが.

それはともかく, 昨年秋にリリースされた JUnit 4.11 につきましては, Javaテストフレームワーク「JUnit 4.11」が公開 という記事 (Nov 26, 2012) に,

また、パラメーター化テスト(Parameterized Tests)では、テストに名称を付ける「@Parameters」アノテーションを利用して個々のテストケースを容易に識別できるようになった。

と記載されているのが目に留まりました.

Wednesday, January 23, 2013

Apache + PHP-FPM の chroot について

先日の 記事 (Jan 20, 2013) を書いた段階からまだほとんど PHP のことは勉強していませんが, ひとつだけ気になっていた点があったので, そこだけ少し手をつけてみました. すなわち, PHP スクリプトから, ファイルシステム上の任意のディレクトリやファイルなどに勝手にアクセスすることができないようにするには, どうしたらよいだろうかということです.

Sunday, January 20, 2013

はじめての PHP インストール

前回の記事 では Apache HTTP Server (2.4 系) のインストールをしました. 今回は PHP のインストールをしてみます.

Thursday, January 17, 2013

Apache 2.4 系をソースからインストールします

Debian GNU/Linux 6.0 (Squeeze) で提供される Apache HTTP Server の安定版パッケージ apache2 は, 現在のところ 2.2 系です. 2.4 系を利用したい場合は, ソースからビルドしてコンパイルする必要があります. わたし自身は, ふだんはパッケージを利用していたのですが, ふと 2.4 系を試してみたくなりました. やってみると, それほど難しくもない気がしましたので, ここにメモを残しておきたいと思います.

Wednesday, January 16, 2013

Apache 2.4 系をソースからインストールする際の DSO に関して

Apache HTTP Server 2.4 系で現在最新の安定リリースは, バージョン 2.4.3 のようです. これをソースからビルドしてインストールするということをしてみました. 2.4 系をさわるのは今回がはじめてです. そこで, その際に試したことをいくつかここに書こうかなと最初は思ったのですが, ひとつ気になる点があったので, それについてだけ書こうと思います. DSO (Dynamic Shared Object) として扱うことのできるモジュールについてです.