2017-04-24 34 views
2

私はReactJSを使って簡単なチャットアプリケーションを開発しています。誰かが入力を害さないように助けてもらえますか? チャットメッセージを送信する入力テキストボックスは1つだけです。どのようにそれを衛生的にする?ReactJSの入力サニタイズ

<input type="text" 
       className="chat" 
       value={this.state.name} 
      /> 

HTMLには、デフォルトでHTMLがエスケープされています。それは十分か?。他のサニタイズ方法を追加する必要がありますか?はいの場合は、どうすればいいのか教えてください。

+0

'value = {sanitize(this.state.name)}'? –

+0

@NguyenThanh私はちょうど価値= {sanitize(this.state.name)}を与えることができます、私は定義されていないエラーをサニタイズしています。本当に消毒する必要がありますか? ReactJSは自動的にそれを行いますか? –

答えて

4

デフォルトでは消毒されていますが、そうでない場合はdangerouslySetInnerHTMLを使用していない限り消毒方法は必要ありません。

+1

これに関する文書はありますか? –

+1

https://facebook.github.io/react/docs/introducing-jsx.html#jsx-prevents-injection-attacks "React DOMは、デフォルトで、JSXに埋め込まれた値をレンダリングする前にそれをエスケープします。アプリケーションに明示的に書かれていないものを挿入することはできません。すべてがレンダリングされる前に文字列に変換されるため、XSS(クロスサイトスクリプティング)攻撃を防ぐことができます。 – dgrijuela

関連する問題