簡潔で実用的な擬似(擬似)パラメーター
2日前、私はエンタープライズ検索エンジンの現場バージョンに取り組んでいましたが、一部のサイトがサイトコンテンツにリンクできることがわかりました。 。
私はそれを奇妙に見て、データベースIDの自動番号付けルールに従ってリンクされていることが判明しました~~
私は暇なときに以下をやったことがあります。将来のすべての人に役立つことを願っています。
コードコピーは次のとおりです。
<%
//指定された数字で乱数を生成します
// Guidyで記述されたIXUER_RND_STR関数を使用することもできます。これには15のスタイルが付属しています。
functionrndstr(strlong)
dimtempstr
ランダム化
Dowhilelen(RNDSTR)<Strlong
tempstr = cstr(chr((57-48)*rnd+48))
rndstr = rndstr&tempstr
ループ
rndstr = rndstr
エンド機能
%>
以下は、request.formの例としてフォームフォームで送信されたパラメーターです。渡す必要があるパラメーターのドーションの元の値は、データベースから読み取られるIDです。
<formname = iformaction = "abc.asp" method = "post">
<inputname = doactionType = "hidden" value = "<%= rndstr(10)%> <%= rs(" id ")%> <%= rndstr(10)%>">
</form>
知らせ:
上記のdoactionの値は変更されており、ページが更新されるたびに得られる値は異なります~~
以下はABC.ASPページです
最初に、doactionの値を取得します
doaction = trim(request.form( "doaction"))
以下に、IsNumericなど、いくつかの検証を自分で追加できます。
次に、Doactionの価値を分解しましょう
コードコピーは次のとおりです。
Dimlastid
doaction = mid(doaction、11)
lastid = mid(doaction、1、len(doaction)-10)
中間関数に精通している場合、上記のコンテンツは簡単に推測できますが、簡単ではありませんか?
実際の例は次のとおりです。
データベースの元のドクションによって渡されるIDの値(フィールドタイプは自動的に番号が付けられています)は次のとおりです。
説明:
11 in mid(doaction、11)は、多くのランダムな文字 + 1を生成します
10 lastId = mid(doaction、1、len(doaction)-10)は、指定された数で生成されるランダムな文字桁の数です!
Dimlastid
doaction = 3614354944348151287527—偽装後のID値(数として確認できます)
doaction = mid(doaction、11)
lastid = mid(doaction、1、len(doaction)-10)
lastId = 34
私は実験しましたが、ランダムに生成された文字と数字で使用すると、MD5と同様の値として完全に偽造できます!
条件は1つだけで、ランダムな文字のビット数を指定する必要があります。
ハハ、今では誰もがresponse.writeの最後の値を出力して、それが再びデータベースのIDであるかどうかを確認できますか?
この方法は、ビデオパラメーターを暗号化およびダウンロードするために使用できます。たとえば、政府の公式文書循環システムを構築した場合は、ファイルを使用することもできます。
同じことは、request.querystringの場合です!コピーしましょう...
上記は、ASPプログラムを書く際の私の小さな経験です。欠点があれば私を修正してください!
必要に応じて中央の数字を取ることができます。