ASP生成疑似パラメータプログラム設計技術
1589 ワード
先日、駅構内版の検索エンジンをやっていましたが、一部のサイトがサイトの内容にリンクしていることが分かりました。 奇妙に見てみると、データベースIDの自動番号順にリンクされています。 暇な時に、次のようなものを作りました。これからASPプログラムを作成するのに役に立つと思います。 <% '//指定桁数の乱数を生成する ''//Guidyで書いたiXuEr_もできます。Rnd_Str関数は、15種類のスタイルを持ち、疑似MD 5ができます。 Function rndStr(strong) ディム tempStr Randomize Do While Len(rndStr) < ストリングス tempStr=CStr(Chr(57-48)*rnd+48) rndStr=rndStr&tempStr ループ rndStr=rndStr End Function % 以下ではFormフォームに提出されたパラメータを例にとって、Request.Formに対して、伝達が必要なパラメータdoActの元の値はデータベースから読み出されたIDです。 <フォームm name=iform action=「ABC.asp」 method=「post」 <input name=ドアクション type=「hidden」 value=「%=rndStr(10)%」<%=Rs("ID")<%=rndStr(10)>」 注意: 上のドアクションの値が変わりました。ページを更新するごとに得られる値が違います。 次はABC.aspページです。 まず、アクションの値を取得します。 ドアクション = Trim(Request.Form(「doAction」) 以下は自分で少し検証してもいいです。IsNumericなどです。 その後、私たちはドーアクションの値を分解します。 ディム LastID ドアクション = Mid(ドアクション、11) LastID = Mid(ドアクション、1、Len(ドアクション)−10) Mid関数に詳しいなら、上記の内容は簡単に推測できますよね? 以下は実際の例です。 元のdoActionで転送するIDは、データベース内(フィールドタイプは自動番号)の値です。34 説明: Mid(doAction、11)の11はあなたのためにランダムな文字の桁数+1を生成します。 LastID = Mid(doAction,1,Len(doAction)-10)の10は、生成されたランダムな文字の桁数を指定します。 ディム LastID ドアクション = 361454944348151287527 ― 偽装後のID値(完全に数字として検証可能) ドアクション = Mid(ドアクション、11) LastID = Mid(ドアクション、1、Len(ドアクション)−10) LastID = 34 試してみましたが、ランダムに生成されたアルファベットと数字を合わせて使うと、MD 5のような値になります。 ただ条件は一つで、ランダムな文字の桁数を指定することができます。 ハッハッ、今みんなのResonse.WriteがLastIDの値を出力して見てみて、またデータベースの中のIDですか? この方法は映画のパラメーターの暗号化、ダウンロードなどに使えます。政府の公文書の流通システムを作ったら、文書の上にも使えます。 Request.QueryStringに対しても同じです。瓢箪にならって瓢箪をかきました。 以上はASPプログラムを作成している私の経験です。足りないところはご指摘ください。