Posted on

DB暗号化を調べてみた

DBに保存する時に個人情報をそのまま保存するのは、万が一DBの情報が流出した時にまずいので、色々と調べてみました。

まず、パスワードはphpのmd5でハッシュ化して保存すれば、復号できないのでOK、パスワードを忘れた場合は、新しいパスワードをランダム生成。
次に、暗号・復号するデータ。
氏名やメールアドレスなど、
php側で暗号・復号する方法と、DB側で暗号・復号する方法があります。(ハードディスク自体暗号の方法もありますが)
で、問題は、LIKE検索とINDEXでした。
基本、暗号化して保存すると上記2点が出来なくなることが問題です。
その点も踏まえてどんな方法があるか調査してみました。
とりあえず今回は
php mysqlの環境で出来ればということで・・・

続きを読む DB暗号化を調べてみた

Posted on

ブラウザ・IEの画像キャッシュをなんとかする

画像をアップするシステムを作ってる時にかなり邪魔なブラウザの画像のキャッシュ。

画像をアップしなおしたのにブラウザで確認すると前の画像が!!
そんな時の解決方法をまとめてみました。
テストしたのは
IE6,8
Firefox4
Chrome11
テストファイルはphpです。

続きを読む ブラウザ・IEの画像キャッシュをなんとかする

Posted on

phpコードの暗号化をする

今回phpコードを暗号化する方法を検討することになり、いろいろ試してみたので、その経過を記していきます。

まず最初にPOBSというプログラムが比較的簡単に導入できそうなので試してみました。
http://pobs.mywalhalla.net/からPOBSのダウンロードしてきます。
最新版のpobs099.zipをダウンロードして展開した出来たフォルダをphpが動作する区画にアップロードします。
後はブラウザから中に入っているpobs.phpを叩くだけで使えるということだったのですが、動かない!!
画面が崩れてコードの表示がむき出しになっている状態でした。
調べてみるとPHPを開始するところの記述が「<?」だけになっていました。
サーバーの設定にもよるのですが「<?php」で始めないと動かないようになります。
今回試した環境では動かなく原因を特定するのにハマリました・・・

無事に画面が表示されたので実際に実行してみます。
「Source Directory」に暗号化したいphpのあるパスを記述して、「Target Directory」に暗号化し終わったファイルを置くパスを指定します。
後は自由に設定が出来てクラス名・関数名・変数という具合に指定できます。
準備が出来たら「Start processing」を押すとどのファイルを変更したかと、変更前の記述と変更後の記述が表示されます。
それで「Target Directory」で指定したフォルダを見てみると、変換されたファイルが出来ていました。

感想:POBSはphpソースの暗号化というより可読性を落とすという感じで、今回捜し求めているphpの暗号化には当てはまらなそうです。ただ導入も簡単なので将来役に立つかも・・・

次に試してみたのがPHP_SCREWという暗号化ツールです。
導入と使い方は次のページを参考にしていきました。
http://www.pm9.com/newpm9/itbiz/php/phpscrew/ (本家)
http://tm.root-n.com/programming:php:etc:php_screw
基本的にLinuxにインストールしてコマンドでソースの暗号化をするというツールです。
コマンドで実行したら指定したファイルが暗号化されて、同じ場所に「元ファイル名+.screw」のファイルが出来ます。
後は「元ファイル名+.screw」のファイルを消せば暗号化の完成!!

感想:ソースの暗号化という分に関してはある程度望んでいる感じだった。しかし暗号化したPHPはインストールしたサーバーでしか動かないのでレンタルサーバーで動かすときやパッケージで提供するときには使えなさそう。

Posted on

wdCalendarをCakePHPに組み込んでみる

以前紹介した記事「wdCalendarを日本語で使ってみる」で日本語化したwdCalendarをCakePHPに組み込んでみたので紹介します。

それから少し改造ということで、登録できるフィールドを追加してみるのと、ログインした人のidを基に誰が登録した予定なのかを持たせるようにしました。

実際の見た目はコチラ

続きを読む wdCalendarをCakePHPに組み込んでみる

Posted on

wdCalendarを日本語で使ってみる

GoogleカレンダーをベースにJQueryで作られたwdCalendarを日本語にして使ってみたのでそのメモ書きです。

wdCalendarはhttp://plugins.jquery.com/project/wdCalendarからダウンロードしてきます。

今回はダウンロードしてきたファイルで分かるところを日本語に変えていきました。これで一応見た目は全て日本語になったはずです。

ダウンロードしたjsファイルだと日本語に対応していないのでwdCalendar_lang_○○.jsとdatepicker_lang_○○.jsなっているフォイルを改造してwdCalendar_lang_JA.jsとdatepicker_lang_JA.jsを作りました。ソースはこんな感じです。

続きを読む wdCalendarを日本語で使ってみる

Posted on

PDFで文字を埋め込まない時は半角¥がバックスラッシュに変わる

この前TCPDFというPHPからPDFを出力するライブラリではまったのでメモ。
TCPDFとはこちら
こちらのサイトを参考にしてファイルのサイズの関係でフォントを埋め込まないようにして
PDFを出力していたんですが、「半角(¥)がバックスラッシュ(\)」になって出力されてしまいました。
何で・・・?

続きを読む PDFで文字を埋め込まない時は半角¥がバックスラッシュに変わる

Posted on

システムの脆弱性検知ツールを調査してみる

セキュリティの調査で3つ脆弱性検知ツールを入れてみたのですが、結果的には次のようになりました。

-skipfish
Linuxでしか動作しなく導入に手間が掛かる。
導入後、実行してみるが時間が掛かりすぎる。CakePHPを抱え込んで検知したら半日経っても終らない。
素のPHPで小さいシステムを検査してみるが脆弱性が発見できない。

-IPAが出しているiLogScanner
導入作業自体が無くIPAが用意しているサイトにサーバーのアクセスログファイルをUPして調査する。
サーバーのログを上げる作業なので、このプロジェクトの脆弱性を見たいという時は、ログファイルの吐き出し方を切り替えるという作業が必要になってくる。
脆弱性を発見したと検知されるのに、何処のファイルかという情報が無く脆弱性の特定が出来ない。

-Paros
windowsにインストールできて、そのパソコンからブラウザのプロキシを強引に変えて見たいシステムのURLを叩いて操作したログを後で検査するという仕組みです。
素のPHPで書いた小さいシステムを検査すると、何処のファイルに脆弱性があるときちんと出してくれます。
但しCakePHPなどのフレームワークを検査してみると、MVCが分かれているせいでXSSやSQLインジェクションを上手く検地してくれない。

ということでParosがまだ一番使えるかなという感じなのですが、当初の目的のCakePHPを使ってるサイトの脆弱性を検査するという部分が出来ないので、引き続きツールを探して行きたいと思います。
何か良い脆弱性検地ツールは無いんですかね・・・

Posted on

PHPで画像加工

今回UPした画像のリサイズと画像に文字を乗っけるという仕様の仕事があり、PHPで画像加工に挑戦しました。

調べてみるとPHPを入れるときに大体標準で付いてくるGDライブラリで画像加工が出来るとのこと。
今回は画像を小さくリサイズするのと、写真に文字を埋め込むという事をしました。

続きを読む PHPで画像加工