PHP Token(トークン)設計

4420 ワード

転載リンク:http://www.jb51.net/article/13756.htm
PHP Token(トークン)設計目標:データの重複提出を避ける.来た道を確認すると、外部提出と一致して実行する動作かどうかを確認する(複数の論理が同じページで実現される場合、例えば追加、削除、修正をPHPファイルに入れて操作する).ここでいうtokenはページ表示時に、FORMの隠しフォーム項目(type=hidden)に書き込まれる.tokenは明らかにできない.明文なら危険です.暗号化は可逆的にします.私はアルゴリズムがバカですから、ネット上の既製の方法を採用しました.
どうやって重複提出を避けるべきですか?SESSIONには、成功的に提出されたtokenの配列が保存されています.バックグラウンドでは、このtokenがこの配列にあるかどうかを判断します.もし存在すると、説明は繰り返し提出されます.  どうやって進路をチェックしますか?このtokenは生成時に現在のセッションを入れています.id.他人のcopyがあなたのhtml(tokenがcopyを爆発させると)提出する時、理論的にtokenに含まれるsession_idは現在のsession_に等しくない.IDは、今回の提出は外部提出と判断できます.  どのように実行する動作にマッチしますか?tokenの時に、このtokenの動作名をこのtokenに書きます.このように処理する時、この動作を解きほぐして比較すればいいです.
GEncrypt.inc.php:
 
方法:
(1)granteToken 引数:formName、すなわち動作名、keyは暗号化/復号化です. 鍵..
文字列を返します.形式は: 暗号化(form Name:sessionuid)
(2)isToken パラメータ:token つまり、granteTokenが生まれた結果、formName、動作名、from Checkが来路を確認しているかどうかは、本当であれば、tokenのsession_を判断しなければならない.IDが現在のセッションになっていますか?id一至.
(3)dropTokenは、一つの動作を成功させると、この関数を呼び出して、このtokenをsessionに記入します.
GTP oken.inc.php
 
からPOSTでtokenを取り出し、isTokenで判断する.
実行されたマッチング動作かどうかを判断したいなら、isTokenのformNameを修正して実行してもいいです.うまくマッチしていません.この成功を証明します.