Pages

2011年2月21日月曜日

マルチバイトアタック対策について

Zend_DbのQuoteについて現状を再調査した時にちょっと調べ物をしたので下にメモ。

相変わらずLIKE向けにのQuote関数は増えてないようやね。。
LIKEなんか使う位なら全文検索サーバー入れろって事なんでしょうか。。

とりあえず今回はこの事じゃなくてマルチバイトアタックにいて小実験してたので、メモ。
崩し文字(?)対策はどうもZend\Db_quoteされてないような気がする。。

って何か出力結果が違うぞ。。
てか「'」が取れない。。このままじゃLIKEに使えない。。
なんだこれ。。 仕方がない。。

MySQLでLIKE使う時はaddcslashesしかないのかな。。

 NULL + SUB(Control Z) + "OK"
// マルチバイトアタック対策無し

$str = pack("nvc*", 0x00, 0x1A, 0x6F, 0x6B, 0x83, 0x1A);
var_dump($str);
$res = addcslashes($str, "\\\000\n\r'\"\032%_");
var_dump($res);

echo "\n-----------------------------------\n";

// SJIS -> "O"の崩し + "K"
// マルチバイトアタック対策有り

$str = pack("nvc*", 0x1A, 0x6B, 0x83, 0x1A);
var_dump($str);
$str = mb_convert_encoding($str, 'SJIS-win', 'SJIS-win');
$res = addcslashes($str, "\\\000\n\r'\"\032%_");
var_dump($res);

echo "\n-----------------------------------\n";

// UTF8 -> "ア" + NULL + NULL + NULL
// マルチバイトアタック対策無し

$str = pack("nvc*", 0xE3, 0x82, 0xA2, 0x00, 0x00, 0x00);
var_dump($str);
$res = addcslashes($str, "\\\000\n\r'\"\032%_");
var_dump($res);

echo "\n-----------------------------------\n";

// UTF8 -> "ア" + NULL + NULL + NULL
// マルチバイトアタック対策有り

$str = pack("nvc*", 0xE3, 0x82, 0xA2, 0x00, 0x00, 0x00);
var_dump($str);
$str = mb_convert_encoding($str, 'UTF8', 'UTF8');
$res = addcslashes($str, "\\\000\n\r'\"\032%_");
var_dump($res);

echo "\n-----------------------------------\n";

// UTF8 -> "ア"の崩し
// マルチバイトアタック対策無し

$str = pack("nvc*", 0xE3, 0xA1, 0xA2);
var_dump($str);
$res = addcslashes($str, "\\\000\n\r'\"\032%_");
var_dump($res);

echo "\n-----------------------------------\n";

// UTF8 -> "ア"の崩し
// Zend_Db_quoteを利用

$str = pack("nvc*", 0xE3, 0xA1, 0xA2);
var_dump($str);
$res = $db->quote($str);
var_dump($res);

2011年2月16日水曜日

Android EclipseでLayout開発時にGraphical Layoutで日本語表示したい時に

未だに解決されないこの問題。。
今自分がやってる方法は値(日本語)の最後に「z」を付ける方法。
リリース時には毎回zを取り除く作業があるけどこれがまだ楽かな。。

ちなみに「z」は半角文字なら何でも良さそうです。
どっかのホームページで紹介されてたやり方なんですが、忘れました。。

早くこの問題が解決される事を祈ります。。

Android Layout用のXMLファイルがオンライン上で簡単に作れる

これは凄い便利♪
結局は最終的にソースで書くようになるかもしれないけど、最初はこれで全然十分♪♪

もっと早く出会いたかったなな~~

ブラウザ上で動作するんでインストールの必要無しです。
オブジェクトの削除はBSキーです。Delじゃないです(笑)

DroidDraw : Graphical User Interface Editor for Android Cell Phone Development and Programming

2011年2月15日火曜日

LinearLayoutとRelativeLayoutの使い方をまとめてみた - プログラミング雑記

レイアウトの基本はここが参考になった♪

LinearLayoutとRelativeLayoutの使い方をまとめてみた - プログラミング雑記

Android ウィンドウタイトルバーを非表示にする

ウィンドウのタイトルバーはデフォルト表示されるので、下記のように非表示にしてやる。
基本的には画面が小さいのでデフォルト非表示でも良い位だと思うんですがね。。

requestWindowFeature(Window.FEATURE_NO_TITLE)

を下記のように呼んでやる。


public class Index extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.index);
    }
}

Android wrap_content は2.2からmatch_contentが推奨されるようになった?

よく解らないけど、どうやらlayoutでwitdhなどに利用していた、wrap_contentが2.2からはmatch_contentに変わるみたいな事がどっかに書かれてました。多分。。

最初2.2向けにアプリ作ってたんですが、Xperiaを検証機に使いたくて気づいた。

2011年2月4日金曜日

絶対やってはいけないAndroidのアカウント設定手順。。

気づくのが遅すぎた。。
今までメインはAppsアカウントだったので、最初に登録するアカウント情報はAppsアカウントを入れていたんですが、これは絶対やってはいけないトラップでした。。

AppsアカウントだとAndroid Market PC版等、完全に使えないサービスがあります。
そこでまずはメインじゃないかもしれないけど@gmail.comアカウントで登録するんです。

次にPCサイトのアカウント設定で、@gmai.comアカウントとAppsアカウントは紐づける事もできますので、それを行っておきます。

そして@gmail.comアカウントで設定された端末に他のアカウントとしてAppsを登録します。
@gmail.comのメールや連絡先などは同期しないようにしておけばOKです。

これだとAndroid Market PC版が正常に利用できました♪
ただ、今まで購入したアプリはAppsアカウントに紐づいているので、諦めるしか無いです。。

Mapアプリはアカウント切替ができるんですけどね。。
マーケットもできるようになる日まで購入したアプリとはサヨナラです。

2011年2月3日木曜日

端末への遠隔インストールが便利なウェブ版Android Market。使い方ガイド

端末への遠隔インストールが便利なウェブ版Android Market。使い方ガイド

使ってみようと思ったら全然使えない。。
どうやらまたもやAppsアカウント利用者には使えないサービス。。

もうこんな事ならAppsアカウントやめろよ。。
Appsユーザーの方が金払ってる率高いんだしもうちょっと良くしてくれても。。

Followers