記憶永続化用のメモブログ

脳内に揮発性記憶領域しかないことに気づいたので作成

jarの特定のプロパティファイルだけ更新する

# jarの内容確認
/usr/local/java/bin/jar -tvf ./hoge.jar

# jarから修正ファイルを展開
/usr/local/java/bin/jar -xf ./hoge.jar resources/hoge.properties

# resources/hoge.propertiesを修正
vim resources/hoge.properties

# 修正したresources/hoge.propertiesをjarへ更新反映させる
/usr/local/java/bin/jar -uf ./hoge.jar resources/hoge.properties

緊急でプロパティファイルだけ更新してリリースしたいときとかに便利。
※ クラスファイルとかも差分更新とか出来る

バージョン管理とかしてるときは、コミットを忘れると後々事件になったりするので注意。

クリックジャッキングの対応メモ

クリックジャッキングの対応についての自分用のメモ書き。

クリックジャッキングってなんぞ?

クリックジャッキング 「クリックジャッキング」とは、ユーザーを視覚的にだまして、正常に見えるページとは別のページをクリックさせる攻撃のこと。

知らぬ間に自ら「設定変更」〜クリックジャッキング攻撃を防ぐ - 第1回 SNSの個人情報がさらされる、昔な...:ITpro

とあるサイトをiframeで表示させて、その上に透明なページを被せてユーザにクリックさせて悪意あるサイトとかに誘導したりするのが流行らしい。
おそらくIDやパスワードも入力させてしまえば抜ける。

とりあえず上記のリンクのサイトを見るのが一番分かりやすかった。

自分のサイトが他のドメインからiframeで表示出来るか検証

適当にhtmlファイルを作ってみる。

<html lang="ja">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">

<meta http-equiv="Content-Style-Type" content="text/css">

<meta http-equiv="Content-Script-Type" content="text/javascript">

<title>テスト</title>

</head>

<body>

<iframe style="width:100%;height:100%;" sandbox="allow-forms" src="自分のサイトのURL"></iframe>

</body>

</html>

Oh....
みごとに表示出来ている。。。

他のサイトから表示出来ないように対応する

IPAのサイトに対応について纏められていたpdfがあった

X-FRAME-OPTIONSでiframeで表示させないように制御するのがよろしいらしい。
ただ、自分のサイトでiframeを使って自分のサイトを表示とかしてたら、
他に対応を考えるかiframeを除去していかなきゃいけない。

今回はユーザ更新の
とりあえずapachehttpd.confのvirtualhost内に以下の設定を追加。

Header always append X-FRAME-OPTIONS "SAMEORIGIN"

※ mod_headersモジュールが有効になっている必要あり
※ "SAMEORIGIN"は同一ドメイン内ならiframeの表示を許可するという設定。ドメインに限らず全て拒否する場合は"DENY"を設定する。

で再度、iframeを書いたテスト用のhtmlを開いて確認したところ、無事にiframeが表示されなくなっていることを確認できた。

Servlet3.0でweb.xmlなしでSpring MVCを動かす

 

とりあえずjsonで返すやつを動くところまで持って行ったのでメモ。

 

applicationContext.xmlは使わなくてもいいかなー。

DispatcherServlet単位にbean定義が出来るなら、使わなくてもいけそう。

何個もDispatcherServletを登録するパターンなら必要になってくるかな?

google-jstemplateの使用メモ

Gist使ってみたくて某ブログから移動。

クライアントサイドのテンプレートエンジン JsTemplateを使って見たので、忘れないうちにメモ。

google製みたいです。

・色々出来るみたいです。

1. SVNからチェックアウトする

リポジトリhttp://google-jstemplate.googlecode.com/svn/trunk

使うのは

・util.js

・jsevalcontext,js

・jstemplate.js

 

 

id="template"のところがテンプレートデータ。

親divタグのstyleで"display:none"で非表示にしてある。

テンプレートの中の

・jscontent

 → jsonデータとバインドするパラメータを書いておくとバインドされる。

・jsdisplay

 → 非表示設定が出来るっぽい。今回の書き方だと変数が存在してるか?っていうチェック??

 ※ jsdisplay="list.length == 0" っていう書き方も出来る。この例だとリストのサイズが0なら表示される。

・jsselect

 → 変数を指定すると要素をループして取り出す?foreach的な?

・jsvalues

 → 要素とかで変数に出来るっぽい。

  この例だとname属性とchecked属性にJSONのlistのattrNameとattrCheckedをバインドさせてる。

  ちなみに$thisはjsselectでループしているlist配列のターゲットデータ。