home ホーム search 検索 -  login ログイン  | help ヘルプ

find 検索

451 - 460 / 1320    [|<]  [|<]  [<]  41  42  43  44  45  46  47  48  49  50   [>]  [>|][>|]
タイトル/名前 更新者 更新日
技術/ASP.NET/ViewStateメモ msakamoto-sf 2011-08-28 23:50:34
日記/2011/08/28/冷蔵庫処分 msakamoto-sf 2011-08-28 23:31:07
日記/2011/08/21/AndroidSDKで使えるインターネットプロトコル msakamoto-sf 2011-08-21 20:44:49
技術/Android/TestAutomation msakamoto-sf 2011-08-21 16:29:54
技術/HTTP/セッション固定化関連メモ(SessionFixation,SessionAdoption) msakamoto-sf 2011-08-21 14:53:17
技術/HTTP/FormやCookieのkey名に"="を含めたらどうなるのか? msakamoto-sf 2011-08-21 14:52:59
技術/HTML5/WebSocket msakamoto-sf 2011-08-20 21:11:14
日記/2011/08/20/nPOPQのメールデータをmbox形式に変換 msakamoto-sf 2011-08-20 17:58:39
技術/HTML5/WebStorage msakamoto-sf 2011-08-20 17:50:30
日記/2011/08/14/Struts2とOGNL msakamoto-sf 2011-08-14 20:36:17
ソート項目 / ソート順     1ページ 件ずつ表示

技術/ASP.NET/ViewStateメモ  

所有者: msakamoto-sf    作成日: 2011-08-28 23:42:55
カテゴリ: .NET 

ViewStateの参考情報リンクメモ。

日本語:

英語:

個人的にはMSDN英語版の "Understanding ASP.NET View State" が一番有用で分り易かった。ASP.NETのページ処理のLifeCycleをまず解説しており、全体像を把握できるように配慮されている。

ViewStateを介したXSS攻撃:

セキュリティ上の対処としては以下の2点に尽きる。

  1. MACを有効にする。
  2. 暗号化を有効にする。

FiddlerとそのPluginであるWatcherを使うと、MACが有効か自動判定してくれるようだ。実際に手許で動かしたわけでないので、未確認情報。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2011-08-28 23:50:34
md5:80bd88a673883601482395cc7b679a32
sha1:f5aa5d94878201270c94dbcd4319b6341bcf5407

日記/2011/08/28/冷蔵庫処分  

所有者: msakamoto-sf    作成日: 2011-08-28 23:24:13
カテゴリ:

2000年に購入した冷蔵庫が壊れた。11年動きつづけた。冷蔵庫ってやっぱり10年は同じの使い続けるよな・・・。

そして、処分がそれなりに面倒くさいという罠。

買い替えで引き取ってもらうのも有りなんだけど、もともと今のアパートに備え付けの小型冷蔵庫があり、別に自炊するわけでもないのでそれで問題なく収納できてしまい、ならわざわざ新しいのを購入する必要もないだろうと。

とはいえ民間業者に頼むと、お役所経由の2-3倍の値段になってしまうので、別に急ぎでもないのですなおにお役所経由の手続きをする予定。

ものを捨てるにもお金のかかる時代。

「寒い時代だと思わんか?」


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2011-08-28 23:31:07
md5:f6a54423c9b88cead25331410dea4fc4
sha1:60db8b3b6741f412ec4ca02b0f8d27644fa614de

日記/2011/08/21/AndroidSDKで使えるインターネットプロトコル  

所有者: msakamoto-sf    作成日: 2011-08-21 20:22:00
カテゴリ: Android ネットワーク 

どれくらいあるのか、簡単に漁ってみました。

TCP, UDP java.net ストリーミングとデータグラム。
HTTP org.apache HTTPクライアントライブラリ。
SIP android.net.sip Session Initiation Protocl
RTP android.net.rtp Real-TIme Transport Protocol, VoIPや動画ストリーミングなど。

こんなところかなぁ。

インターネットは関係ないけど、とりあえずプロトコルっぽいもの:

NFC android.nfc Near Field Communication, Felicaなど。
MTP android.mtp Media Transfer Protocol, USB接続のメディア機器など。
SMS android.telephony.gsm GSM専用のSMS。

どうしても「あのプロトコルが使いたい!」ってゆーのがあれば、TCPとUDPはjava.netがあるので、Javaの世界の既製ライブラリを移植するなり、自分で頑張って実装するなり、という流れになると思う。

参考:


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2011-08-21 20:44:49
md5:c2bb045065e7026113265f2033f7f69b
sha1:5c0ed77b80086ca1a7aeca502e721189769014f2

技術/Android/TestAutomation  

所有者: msakamoto-sf    作成日: 2011-06-19 19:10:18
カテゴリ: Android 

テストの自動化メモ。

JUnit + Instrumentation

Android上でのActivityTestの基本。Javaのinstrumentと同様、仮想マシンとクラスの間にインターセプト出来る。
android.testパッケージ以下にinstrumentを使ってUIを操作「したことに」して各種Testを実行可能なクラスが用意されている。

Robotium -> scirocco

PowerMockを開発しているJaywayが、その有り余るHENTAI性をAndroidのUIテストの自動化に注ぎ込んだのがRobotium。
"Android開発におけるSelenium"を目指しており、UI部品の内容に対するexpectationを記述や複数Activityにまたがるテストを簡単に記述できる。
個人的には、あのJaywayがメイン開発に携わっていることから将来性も高いと感じる。

Robotiumによる自動化テストで、画面のキャプチャなどもまとめて取得できるよう、特にチーム開発での運用面をサポートするツールとしてsciroccoが公開されている。
こちらは日本にあるSONIXという会社が開発している。

nativedriver

Googleが開発したUIテスト自動化ツール。Seleniumで使われているWebDriverと類似のAPIでUIをテストできるようになる。Robotiumの競合に位置づけることが出来る。
nativedriverの場合、テスト対象のアプリ側にテストサーバ機能を持つ専用のjarファイルを追加するなどが必要。とはいえ、アプリ側のロジックに副作用が出るような形はさすがにとっていない。
マルチプラットフォーム対応を目指しており、既にAndroidに対応しているが近日中にiOSにも対応予定。Windowsも視野に入れている。

Jython経由でmonkeyrunner

デバッグ機能を使ってUIを操作する・・・らしい。

ただしタップイベントなどを x, y の座標値で指定する必要が有るため、実用は難しいかもしれない。

ちなみに、InstrumentationとRobotiumは2011-06時点では「再生」だけで「記録」機能が無い。
一方、monkeyrunnerにはドキュメント化はされていないが MonkeyRunner Recorder という機能が隠されている。

これを使うとRecorderを一種のUI操作Proxyとして、あとでmonkeyrunnerで実行出来る形式のpythonスクリプトでUI操作を保存できる。

ただしmonkeyrunnerでは操作した結果を取得する機能が画面snapshotの取得しか使えない。プログラムで画面UIの変化を検出する機能が存在しない。
この点が、UIテストの自動化に組み込むにあたりデメリットになるだろう。



プレーンテキスト形式でダウンロード
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2011-08-21 16:29:54
md5:b63b0482b65174a356f770e67f052a0f
sha1:080a140da9f7f1eaeda5d40dbf9d12e0b9db284f

技術/HTTP/セッション固定化関連メモ(SessionFixation,SessionAdoption)  

所有者: msakamoto-sf    作成日: 2011-08-21 14:51:42
カテゴリ: HTTP ネットワーク 

自分用メモ:

  • セッション識別子に重要情報を紐付ける時に、「格納前のセッション識別子を無効化+新しいセッション識別子を発行」処理を行っていないとセッション固定化に脆弱。
  • 「セッション識別子」は複数のCookieやFormPOSTパラメータの組み合わせの場合もある。セッションを引き継ぐパラメータのセットとして考え、どれか一つでもずれれば引き継げないとすれば、セットに含まれる全てのパラメータが変化しないのであれば脆弱、どれか一つでも格納前後で無効化+更新されるのであれば問題とならない。
    • 攻撃者はセットに含まれる全てのパラメータを被害者にセットし、重要情報がセッション識別子に紐付けられた後も、セットに含まれる全てのパラメータが同じでないと、被害者と同一のセッションを維持できないと考えられるため。(どれか一つでも不正であればログイン画面にリダイレクトされる、等)
  • 「重要情報」の最たるものが「識別情報」なので、主に話題となるのが「認証前後のセッション固定化」となる。認証前の画面フローであっても、メールアドレスや住所など重要情報をセッション識別子に紐付ける場所があれば、セッション固定化問題の対象範囲となる。
    • 金床本では「セッションの持つ価値が変化するすべての場面でセッションIDを変更する。」(p171)という解説をしている。

対策については参考資料を参照。

参考資料:

Session Adoptionについて:

  • 金床本、徳丸本ともにSession Adoptionはそれほど危険視していない。大垣氏のBlogでは随分と危険視されている。
    • 金床本、徳丸本はあくまでもアプリケーションレイヤーだが、大垣氏はPHPという言語環境のレベルで捉えているための温度差もあるかもしれない。
    • Session Adoptionがあるとしても、攻撃者がサーバから発行されたセッション識別子を取得するための一手間を減らすだけであり、Session Fixationに対する影響度は小さく、Session Fixation対策をしておくほうが優先度も高く、アプリケーションレイヤーで対策できるため、自分でPHPにパッチあてたりミドルウェアやフレームワークを修正するよりははるかに現実解として無難な落とし所と言える。

参考:

(全て表示する)
プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2011-08-21 14:53:17
md5:646a03481fb83027a2ecc5886673809f
sha1:306cfc2bbbd3bb6c07713ca033c336699e36a6cf

技術/HTTP/FormやCookieのkey名に"="を含めたらどうなるのか?  

所有者: msakamoto-sf    作成日: 2011-07-31 16:43:40
カテゴリ: HTTP ネットワーク 

仕事中、FormやCookieのkey名に"="を含めたらどうなるのだろう?という話題が出た。

<input type="text" name="foo=bar" value="" />

や、

Set-Cookie: foo=bar=baz

の時、どんな挙動がみられるのか?

ということで、FormとCookieのそれぞれについて、最初にRFC上での"="の扱いについて調べ、続いて実際に動作を確認してみたメモ。

(全て表示する)
プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2011-08-21 14:52:59
md5:104759abb68b73d5b7d1da2fb948284d
sha1:32fae092c6fbbb2f25360ac08de8792f58320c23

技術/HTML5/WebSocket  

所有者: msakamoto-sf    作成日: 2011-08-20 21:10:37
カテゴリ: HTML 

WebSocket関連のメモ。

TCPレベルでのプロトコルを定めたのが"The WebSocket protocol"で、これはIETFで策定している。
継続してバージョンアップしており、2011-08現在は HyBi-10 という略称(Hypertext-Bidirectional)のバージョンが最新。

一時期仕様上のセキュリティ問題が見つかっており、Firefox4やOpera11でデフォルト無効にされたこともあった。

そして実際にJavaScriptから使用できるAPIのインターフェイスを定めたのが"The WebSocket API"となり、W3Cで策定している。

基本的に開発者は"API"の方だけを知っていれば良い。ただしネットワーク環境によってProxyを導入していたりするとTCPレイヤーでトラブルが発生する可能性があるので、そうなると"protocol"をある程度は知っている必要があるだろう。

(全て表示する)
プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2011-08-20 21:11:14
md5:8a26812b92915d63ea8f5cd69ea95023
sha1:35b4b28aab37d826867cc2467088f7664f2a2f3d

日記/2011/08/20/nPOPQのメールデータをmbox形式に変換  

所有者: msakamoto-sf    作成日: 2011-08-20 17:51:25
カテゴリ:

nPOPQはPOP3プロトコル専用のメーラだが、軽い上にSMTPとPOPを割と透過的に扱えるので、出先でメールをチェックしたりメールサーバの動作確認を行うときに重宝している。

が、普段使いのメールチェックに限定すると最近はWebメーラで事足りるため、nPOPQのデータをThunderbirdを介してGmailに移すことにした。

上記サイトを参考にした。nPOPQのメールデータはドット区切りで、mbox形式ではないためThunderbirdには直接取り込めない。上記サイトではBecky!を経由してmbox形式に変換しているが、実際にやってみたところ文字化けしてしまった。そのため、自分の場合は秀丸メールを一時的にインストールしてそちらで試してみたら、文字化けせずにmboxに変換できた。ただし日付が全て1970-1-1になってしまったが、これは諦めた。

とりあえずこれによりThunderbirdを介してGmail側にメールデータを移行できた。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2011-08-20 17:58:39
md5:cd841809c0395fcdc8b55ae6c55fea5f
sha1:ef0ae1fb4698e5aa4714c9e9cd7cc95b6f15468d

技術/HTML5/WebStorage  

所有者: msakamoto-sf    作成日: 2011-08-20 17:48:47
カテゴリ: HTML 

WebStorageのサンプルとメモ。

参考:

Firefox 6.0, Chrome 13, IE9 にて確認。

(全て表示する)
プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2011-08-20 17:50:30
md5:110cd04931758251d02b837a39964c51
sha1:c3ec6e4274a7e650cade9d0288a648906ddab614

日記/2011/08/14/Struts2とOGNL  

所有者: msakamoto-sf    作成日: 2011-08-14 20:18:02
カテゴリ: Java 

最近のお仕事で、StrutsっぽいWebアプリでGETとかPOSTパラメータ名が

foo.bar=...

みたいなドット区切りのを見かけるようになった。

PHPだと"_"に強制的に変換されてしまうのだが、Javaの世界だとどうなってるのだろう、と、数年ぶりにStrutsを触ってみた。
現在はStrutsが2.2.3まで出てる。

自分が最後に触ったStrutsは1.x系で、まさしくXML地獄となっていたのがだが、あれから多少楽になったようだ。
煩わしいForm定義から解放され、DIコンテナとの統合もなされ、洗練された印象を受ける。

で、肝心のドット区切りのパラメータについてだが、どうやらStruts2系ではパラメータの解釈でOGNLというのを使い、式評価によりJavaのオブジェクトに変換しているようだ。
例えば

user.address.city=FooBar

なら

action.getUser().getAddress().setCity("FooBar")

となり(actionというのは、Struts2ではFormを介さずに直接Actionクラス(POJO)に値を渡す形式になっているから。)、

user['favoriteDrink']=green-tea

なら

action.getUser().setFavoriteDrink("green-tea")

と解釈される。

なるほど、こりゃ楽でいいわ・・・と喜んだのも束の間。
Struts2の公式サイトのドキュメントを漁ってたら、

の"S2-005"経由で、

OGNLの式評価ではメソッドの実行やインスタンスの生成なども可能なので、悪意のあるパラメータを設定することで任意のJavaコードを実行できてしまう可能性が・・・(´・ω・`)。

ということで、最新版のStrutsを使うか、ParametersInterceptorのexcludeParamsでホワイトリストorブラックリストで受け付ける文字種を限定しましょう、というお話。

あと、OGNLとして受け付けられない不正な値が入力された場合、裏側でOGNLのparseに失敗してればログを出力してくれるので、その辺もチェックしてみると良いかも。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2011-08-14 20:36:17
md5:64517713f101bdd505c238384d01e5b6
sha1:2e7b6d11760c2dbded71c4fb2acf85e8532fc1d9