SQLインジェクション対策

Signed Request から得られる値は数値で
これが外部に公開されているため
第三者が偽造した Signed Request をURLに含めて送ることは可能らしい
このためSQLインジェクション攻撃を受ける可能性がある
確実にSQLインジェクションを阻止するために
プレースホルダを使用した書きかたを使う
WHERE の中の条件は必ずかっこでかこむ
アクセス元がfacebook であることを HTTP_REFERER環境変数
$_SERVER[‘HTTP_REFERER”]
で確認するなどして SQLを実行すること
SQLインジェクションはクラックの方法なので、
検索するといろいろとでてきます

facebook タブアプリ作成でエラー

facebook アプリの開発中に
API Error Code: 191
API Error Description: The specified URL is not owned by the application
Error Message: Invalid redirect_uri: 指定されたURLは、アプリケーションの設定で許可されていません。
というエラーがでました
原因をさがすため
検索
Facebookアプリ – user-infoを試してみる。
に答えが載っていました
アプリケーションの設定から、使用しているapp_idの、
「アプリの編集」を選び、「Webサイト」「Facebook上のアプリ」に、
Facebookアプリを実行するURLを追加
とあったため、
さっそく設定を変更しました
Website with Facebook Login
をクリックして
サイトURL:
のところへ
URLを記述します
XAMPP で行っているなら、 http://localhost/
レンタルサーバーなら、そのドメインを記述します
今回はタブ型アプリをつくっていたので
ページタブのところだけ
設定したのですが、ログインするようなものを作る場合には
Website with Facebook Login
も設定しないとエラーとなるようです

DBの正規化について

DBのテーブルでの構造について
すべてのデータを1つのテーブルにまとめようとして
各カラムには値を1つだけというようにした場合
あるカラムで
同じデータが複数回
繰り返して格納されるというような必要性がでるときもある
このようなデータが何度も繰り返し入力されるのを解決するのが
正規化
これは同じデータを複数回繰り返すという状態を解決するために
テーブルを増やす操作のこと
正規化は
第1~5正規化
とか
ボイス・コッド正規化がある
一般的には第3正規化までが多いらしい

MyISAMとInnoDB

10日でおぼえるFacebookアプリ開発入門教室 (10日でおぼえるシリーズ)
を参考に、
phpMyAdmin にログインし
SQL を実行したところ、
書籍では 種別のところが
InnoDB
となっていたのに、
実際に実行したら
MyISAM
となっていたので、これを調べてみました
参考サイトは
MyISAMとInnoDB
どうやら
MyISAMはMySQLのデフォルトストレージエンジンで、
ストレージエンジンを指定せずにテーブルを作成すると
MyISAMが選択されるようです

Armitage の起動

Metasploit Framework のGUIフロントエンド
Armitage の起動と接続に成功しました
前回より新しいバージョン
Backtrack 5 R2 を使いました
今回も同様に、VMware Player へインストールし
検証を行いました
まず、最初にインストールします
次に、
再起動したら
root でログインします
デフォルトパスワードは toor
startx
でGUI画面を起動します
次に、端末を開いて
cd /opt/metasploit/msf3
でディレクトリ移動
./msfupdate
でアップデート
./armitage
で起動します
今回は、少し変更されていたため、
ただ単純に
connect をおすことで起動と接続ができました

signed Request とは

Signed Request は
facebook アプリの認証の過程で
アプリ側に渡されるクエリーパラメータの1つ
HMAC-SHA256アルゴリズムで
ハッシュ化された署名文字列

facebook から渡される情報
(base64方式エンコードされた JSONP テキスト)

.
でつなげられている
ユーザ情報が含まれることもあるけど
アプリ認証がすんでいないと一部情報のみになる
https://developers.facebook.com/docs/authentication/signed_request/
に英語だけど解説載っています
内容を少しかいてみました
user
ログインしているユーザ情報(JSONオブジェクト)
algorithm
Signed Request の値をハッシュ値化するための
使用しているアルゴリズム名
issued_at
Signed Request が作成された時刻(UNIX時間)
UNIX時間は
1970/1/1 00:00:00 からの秒数になります
oauth_token
Graph API を呼び出すために必要なトークン
user_id
ログインしているユーザID
app_data
タブ型アプリを表示するときに
アプリのURLに含まれていたクエリー文字列をJSONオブジェクトに
したデータ
page
facebook のID、
いいねしているか
管理者かどうかを示す値を含む
JSONオブジェクト
profile_id
facebook ページのID

IS04 ホーム停止エラーからの復旧

去年購入した Android 携帯 IS 04 が
またしてもエラーをおこしました
今回は深刻で、
ホーム (com.android.launcher2) が予期せず停止しました 
を連発し
終了ボタンをおしても
エンドレスにこれを繰り返します
現状は、
待ち受けの電話、メールはできますが
起動することができるのは、
カメラのみ
再起動すれば治るかなと
期待したものの、さらに悪化して
エラーメッセージのみ
ホーム画面がでないので、
アプリ関連の起動は不可能に
このため、復旧作業を行いました
まず、メールの待ち受けは可能のため
Gmail あてに Yahoo メールから
Google Play (もと Android マーケット)
のURL
https://play.google.com/
をメールに書き込んで送信
次に、新着メールから
メールを開いて、リンク先をブラウザで開き、
Google Play にアクセス
端末のボタン操作は可能なので
HOMEボタンをおして、
アカウント > すべて
を表示し、最悪の場合初期化に備えてバックアップアプリを使い
すべてバックアップ
今回使用したのは
backupper という有料のソフト
そして、おそらく
ホームアプリに問題があると思われるため
FTL Launcher Lite
をインストール
このスピードは癖になる!高速・超軽量なホームアプリ「FTL Launcher Lite」
にこのアプリの紹介が載っています
ただし現状では、ホーム画面が使えない
つまり、設定アプリを呼び出せないため
他の方法を使いました
Home Switcher
をGoogle Play からインストール
しかし、
Android 2.2 だと動作しないため
Home Switcher for Froyo
をインストールし
Android 2.2 対応へ
気分次第でいつでもホームアプリを変更できる!?「Home Switcher」【Androidアプリ】
にこのアプリの紹介が載っています
インストールは PC から行い、
IS04 でアプリインストールが終わると
新着情報で表示されるため、これをタッチして
アプリを起動
これでホーム画面を デフォルトのホームアプリから
軽量ホームアプリ
FTL Launcher Lite
へ設定変更し
無事に起動しました
なんとか初期化せずにすみましたが
あまりにも不具合が目立つため
少し検索
ちなみに、
初期化は、ボタンの組み合わせでもできますので
最悪の場合はこれを使います
やりかたは
IS04のファクトリーリセット(初期化)方法
にあるように
1.電源を切る
2.本体横のボリュームUPのボタン(▲の奴)、
3.カメラボタンを押しながら電源ボタン長押しで起動
4.ボリュームボタンでカーソルを移動「Factory data reset」を選択
5.カメラボタンで決定
でできます
これは、以前に android 2.2 にアップデートするときにやりました
とりあえず、不具合が多いので、
大事なデータをすべて
microSD に保存し
バックアップをこまめにとること
Dropbox などを介してリアルタイムにバックアップしておくことが対策
というところです

Metasploit 関連ツール Armitage

Armitage は
Metasploit Framework のGUIフロントエンド
現在では Metasploit に正式に取り入れられたので
metasploit をインストールすれば同時に
インストール&セッティングされるようです
Armitage を使うことで
Nmap や Nessus などのスキャン結果から
攻撃可能な Exploit を自動的に選択する機能もつかえるようになります
すでに収録されているOS 
backtrack 5 R1 を使ってこれを実験します
まず、GUIから行うには
Applications > BackTrack > Exploition Tools >
Network Exploition Tools > Metasploit Framework >
armitage
で起動します
もしくは端末を起動し
cd /opt/framework/msf3/

metasploit framework ディレクトリに移動し
./msfupdate
でアップデートします
アップデートには時間がかかります
アップデート完了後
./armitage
で稼働できます
GUIでも端末からでも、起動した画面は同じです
現在、armitage の起動まではできましたが
接続がうまくいきません
解決後、また続きを掲載しようと思います