2011-06-21 18 views
2

CSRFを防ぐためにクラシックaspアプリケーションにシンクロナイザートークンパターンを実装したいと思います。howtoは従来のaspでシンクロナイザートークンパターンを実装しています

私はsession_onstartにトークンを生成する必要があることを理解しています。私が得られないのは、ランダムでユニークなトークンを生成する方法です。だから単純なRnd()とランダム化はうまくいきませんよね?

また、どのようにハッシュする必要がありますか?どうやって?任意のヒントについて

おかげで...

Cross-Site Request Forgery (CSRF) Prevention Cheat Sheet

答えて

1

あなたはトークンとしてGUIDを使用することができます -

Function GetGUID() 

    GetGUID = CreateObject("Scriptlet.TypeLib").GUID 

End Function 
4

私は答えたとして、質問がすでにマークされているけど、私が見つかりました。このpostが役に立ちます(本当にあなたの質問には答えません)。具体的には、Chris Shiflett's articleというCSRFと簡単な解答(あなたの質問に加えていくつかの答えに)を説明する2番目の回答です。ここで

はあなたのVBScriptにクリスのPHPを変換する方法を次のとおりです。

Dim token 
token = md5(GetGUID()) 
Session("token")=token 
Session("token_time")=Time() ' if you want to allow for a small window of time 

' checks to make sure the request method is truly a post-back 
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then 
    ' Prevent CSRF (Cross-Site Request Forgeries) by comparing request-generated tokens. See http://shiflett.org/articles/cross-site-request-forgeries 
    If Request.Form("token") = Session("token") Then 
     ' Request is a post-back and is not a CSRF 
    End If 
End If 

あなたはhere(GUIDをハッシュするために使用される)md5()機能を見てすることができます。 md5ハッシュは必要ありませんが、一意性とセキュリティの別のレイヤーを追加します。

+0

あなたの答え、特にシークレットの記事へのリンクをありがとう!あなたが言ったように私はトークンを実装しました。私はmd5のものも使用すると思います。 – ulluoink

+0

md5は実際に一意性を失うハッシュです。私は心配するだけでは十分ではないと思っていますが、あなたが短い文字列を作るためにmd5をやっている、あるいはGUIDではないと人々に思わせるなら、それはうまくいきますが、md5は現在廃止されていると考えられています彼らは壊れていた(彼らは衝突を製造することができる)。 –

関連する問題