httpsの共通秘密鍵の仕組みを応用して、
ほぼ完璧なセッションの組み方を思いついた。
何が完璧って、戻るボタンで初期入力に戻っても
history.backからの更新をほぼ無効化している点。
やり方は以下。
1、3つのパスワードを3つのセッションに登録。
2、内1つのパスワードを別の1つで暗号化。
3、2の値をフォームに持たせて送信
4、確認画面で残った一つのパスワードで更に暗号化
5、4の値をフォームに持たせて送信。
6、初回のアクセスに対してのみ、照合処理を適用
7、合っていれば、キー値を消去する。
8、入力に戻った際、照合セッションを消去
9、再度3つのパスワードを割り当てる。
これにより、確認画面にhistory.backして
2の値を入力したフォームでも
登録が無効化できる。
実際に簡易実装した例
http://tanukinoori.sakura.ne.jp/test/testform.php同日 20:11
応用で画像投稿フォーム作った。
本当は一覧、フォーム、確認、登録完了を
テンプレート別に用意した方がいいけど
全部一緒になってる。
登録できる画像はjpg,gif,png。透過込み。
フォルダ内を走査して表示するので登録すると
勝手に増えるよ、やったねたえちゃん。
mimeの判別はexec使ってる。
送信ボタン押したら勝手にリサイズされる。
投稿制限はセッションだけだが、先程の説明通り
連投はできないしキャッシュも無効なんで
秒数制限まではかけてない。
http://tanukinoori.sakura.ne.jp/test/testform2.php・・・適当に風呂沸かして、買い物行くか。