2017-12-04 16 views
1

暗号関連アプリケーションを開発しています。暗号を処理する人々は、常に詐欺やスクリプトの児童の「ハック」を試しています。ユーザ間のチャットボックスやコメントフィールドのコンテンツをクリーンアップします。メッセージボックスのユーザー入力を消化する

私はそこにHTML/CSS/JSをしたくありません。

私は電子メールアドレス、URL、電話番号、および「通常の」テキストをそのまま残したいと考えています。

今は.gsub(/[^0-9a-zA-Z\@\;\:\-\_\,\.\ ]/i, '') before_saveを行っていますが、改行は削除されています。

私はそれに改行を残すために.gsub(/[^0-9a-zA-Z\R\@\;\:\-\_\,\.\ ]/i, '')を追加しようとしましたが、動作しないようです。

宝石を追加する必要はありません。

+1

脇役のように:セット内のすべての*文字をエスケープする必要はありません。 '[^ 0-9a-zA-Z \ @ \; \:\ - \ _ \、\。\]'は '[^ 0-9a-zA-Z @;: - ] '(ハイフン「 - 」は最後にあり、それを範囲として解釈しません)。 '\ w'は' [0-9a-zA-Z_] 'にマッチするので、' [^ \ w @;:、。 - ] ' – ctwheels

+0

すべてのユーザー入力をサニタイズするのではなく、実際にセキュリティ**が重要な部分に焦点を当てることをお勧めします。 SQLインジェクションやXSS攻撃を許可しない。このようないくつかのランダムな入力を消毒することは、おそらく違いはありません。これはあなたのセキュリティの焦点が作られるべき場所ではありません。 –

+0

Tom、アプリケーションでは、クエリで使用されるすべてのデータに対して補間または連結を使用しません。これは、人々が

関連する問題