[PHP-users 11849] Re: PHPバージョンによる相違

Osamu Shigematsu php-users@php.gr.jp
2002年11月28日 00:47:55 +0900


重松です。こんにちは。
On Wednesday, Nov 27, 2002, at 23:53 Asia/Tokyo, Ryotaro Shimazu wrote:
>> 全くその通りです。
>> hiddenで変数を渡す場合、配列にした値をserialize、圧縮、urlencode
>> しmessage digest方式で改竄チェックをするsecure_serialize
>> 関数という関数を作ってチェックしています。ずいぶん前に、zend.com
>> のCode Exchangeにポストしているコードと仕組みは同じです。
>> の部分なのですが、ただただ、ここまでチェックするのかとびっくりしているの
> ですが、是非勉強したいと思っています。
>> 自分なりにzend.comを探してみたのですが、
> http://www.zend.com/codex.php
> のどこかに、そのコードはあるのでしょうか? それとも全然別のところでしょ
> うか?
>> 宜しければ、コード名か、ダウンロードできるURLを教えていただけますと幸い
> です。

私もつい最近この手法を使いましたが、まあ、イントラなので、圧縮は行っていません。
// confirm.php
$pdata = serialize($data);
$magic = md5(md5('qwerty') . md5($pdata)); // パスワードは隠すべし
$pdata = base64_encode($pdata);
$html->register('pdata',$pdata); // 自作テンプレートクラスに登録
$html->register('magic',$magic);
print $html->parse();
// submit.php
$pdata = @base64_decode($_POST['pdata']);
if(!$pdata) break;
$data = unserialize($pdata); // 復元処理
// ハッシュをチェック
$magic = md5(md5('qwerty') . md5($pdata)); // パスワードは隠すべし
if($pdata && $magic != $_POST['magic']){
	trigger_error('不正な値が送信されました。');
}
こんな感じで多少は参考になりますでしょうか?
-- 
Osamu Shigematsu

AltStyle によって変換されたページ (->オリジナル) /