Antoine.st Login Form Password

Login Form 2

ちょっと書き忘れたことがあったので、追記。ログインフォームを作るうえで欠かせないパスワード入力フィールド。あんまり神経質になることではないのかもしれませんが、パスワード入力フィールドにどう対抗するか、ってのを考えておかなくてはならないケースもありえます。

といっても、パスワードを入力した状態でそのままにしておくってのは、あんまり考えられないんですけどね。ログインするなり、キャンセルするなりしますから。

ともあれ、以前試したところによると、.NET Framework におけるテキストボックスの、パスワード保持機能は貧弱です。大きく分けて、パスワードの盗み方にはふたつあるんですが、どちらの方法でも盗めちゃいます。。

ひとつ目の方法は、wParam に 0 を指定して EM_SETPASSWORDCHAR を投げ、パスワード文字を無効にするってやつです。もうひとつは、WM_GETTEXT で内容を盗む形ですが、どちらも WndProc をオーバーライドして、メッセージを無効にしちゃえば対応可能、と。気になるのであれば、ここまでやってあげてもいいかもしれません。

あともうひとつ、リフレクションを利用した盗み方もあるんですが、そこまでやるかなぁ、というのが正直なところ。