2016-04-22 19 views
0

htmlやjavascript、またはxmlテキストをテキストフィールドまたはテキストエリアに直接貼り付けることをユーザーに制限する方法を教えてください。直接スクリプトをテキストフィールドに入力することを制限する

Ex。私がテキストフィールドを持つWebページを持っていて、そのデータフィールドをサーバーにフェッチする前にそのテキストフィールドを検証したい場合は、生のhtmlまたはxmlまたはjavascriptなど

enter image description here

私は、ユーザ側からの入力のこのタイプを制限したいです。

+0

これまでに何をしましたか?また、データクライアントサイドをサニタイズしないでください。あなたは何を問わず、サーバー側でまだサニタイズする必要があります。人々はあなたのページを編集し、あなたの注意を迂回することができます。 – 4castle

+0

あなたは私にサーバーエンドのデータをサニタイズするための例を教えていただけますか? –

答えて

0

Class StringEscapeUtilsを使用できます。これは、Java、Java Script、HTML、およびXML用のStringsをエスケープし、エスケープするのに役立ちます。

1

短い回答:できません!

データをサーバーに送信する前にJavaScriptフィルタリングを行うことは可能ですが、そのようなチェックを回避できないユーザーは信頼できません。ユーザーデータを信頼しないで、常に(追加の)サーバー側のチェックを手配してください!現代のウェブアプリケーション技術(など)は、HTMLおよびスクリプト入力が出力ページでアクティブになるのを防ぎます。オブジェクト・リレーショナル・データベース・マッピングまたはプリペアド・ステートメントでもSQLインジェクションを回避するのに役立ちます。私の経験では、人間をダブまたは悪のいずれかとみなして、人間工学的で安全なアプリケーションを完成させることができます。

0

テキスト以外の文字を入力するユーザフォームを制限することは、あなたが始めることのできるアプローチになる可能性がありますが、どのような種類の入力でも制限はありません。

テキストのみをクライアント側でサニタイズするには、テキストボックス内の文字列を正規表現と照合することができます。

例: -

var sanitize = function(event){ 
    match = event.target.value.match(/^[a-zA-Z ]*$/gi); 
    if(!match){ 
     alert("special char entered"); 
    } 
} 

は、あなたのテキストフィールドのonChangeイベントに、このようなものを取り付けます。 PS:上記の例は非常に初歩的なものであり、デモ目的でのみ使用しています。

関連する問題