2016-04-30 6 views
0

が反応値:^ 0.14.Xは/ CSRFに反応:フォームや隠された入力を使用せずに戻るCSRFトークンを渡すと

健全性チェック - それは、Ajaxを使用するカスタム入力 コンポーネントを構築するために反応して、トークンが渡されているために一般的ですクライアントの状態の一部として私は想像することができますフォームを使用する必要があり、csrfトークンを渡すために隠された入力値はすべて、 をスキップすることができるステップですが、GithubのEVERYBODYがフォームを使用して、入力値 - あなたは何らかの魔法的な理由があると思うのを開始する。

今はフォームや隠された入力値は、ノード/ SPAアプリケーションで を処理することが示唆されている方法を知っている...

...しかし、私はCSRFトークンの理由を参照してください反応しないとこれまで DOMに触れていたのですが、 はコンポーネントの状態からちょうどアクセスして、 が送信されるたびに渡されました。

たとえば、コンポーネント (後でajaxで処理される)からcsrfを渡すこのログインコンポーネント。

var Login = React.createClass({ 

    getInitialState: function() { 
    return{ 
     csrf: this.props.csrf, 
     email:'', 
     password: '' 
    } 
    }, 

    onEmailChange: function(event) { 
    this.setState({email: event.target.value}); 
    }, 

    onPasswordChange: function(event) { 
    this.setState({password: event.target.value}); 
    }, 

    onSubmit: function() { 
    ActionCreators.login(this.state.email, this.state.password,this.state.csrf); 
    }, 

    render: function(){ 

    return (

     <div className="login-block"> 
      <input type="text" placeholder="Email" id="input" onChange={this.onEmailChange}/> 
      <input type="password" placeholder="Password" id="input" onChange={this.onPasswordChange}/> 
      <button onClick={this.onSubmit}>Submit</button> 
     </div> 

    ) 
    } 

}); 

質問: は、上記のコードは、私は、フォームや隠された入力値を使用することを検討すべきである自分のアプリケーションに引き起こすvuneribilityのいくつかの並べ替えがありますか?

答えて

0

私はそうは思わない、私はそのSPA前の日からのホールドオーバーだと思う。実際にSPAを使用すると、リフレッシュされていないフォームを使用している場合には不可能な、AJAXリクエストやウェブソケットリクエストなど、あらゆる状態変更後に新しいCSRFトークンを取得することが理想的です。私たちのアプリでは、実際にCSRFトークンは、EJSテンプレートレンダリングによって書き込まれたvar csrftokenblah =で送信されます。

+0

「あなたは理想的には新しいCSRFトークンを取得したいと思っています」---それは過剰なものであり、より多くの問題と0の利益をもたらすでしょう。セッションごとに1つの静的トークンが十分です。 – zerkms

関連する問題