0

テキストをサニタイズするために、このコードをサイトに追加しました。

var re = /(<([^>]+)>)/gi;
        for (i=0; i < arguments.length; i++){
        arguments[i].value=arguments[i].value.replace(re, "");
        }

しかし、どういうわけか、人々はタグを使用して、テキスト領域から私のウェブサイトに写真を投稿することができます. コードが間違っている場合はお知らせください。

PS: ユーザーも同様にタグを回避していました。

4

2 に答える 2

0

おそらく何も問題はありません。ユーザーは送信する前にJavaScriptを無効にしてください。

サーバー側でチェックイン

 $_POST['name'] = preg_replace('/<[^>]*>/', '', $_POST['name']);

また

 $_POST['name'] = strip_tags($_POST['name']);
于 2013-04-09T07:45:26.287 に答える
0

入力データを信用しないでください。ユーザーは単にcurlまたは何か他のものを使用HTTP POSTして、サーバーに必要な本文のデータを含むリクエストを送信できます。したがって、データベースに保存する前に、サーバー側ですべてのデータを検証するルールを用意してください。

ユーザーエクスペリエンスを向上させるためにクライアント側の検証を導入することはできますが、とにかく、リクエストを受信したときにサーバー側でその入力を検証する必要があります。


アップデート:

質問にphpタグを付けたようです。サーバー側のアプリケーションが PHP で記述されている場合は、HTML Purifierを使用して入力データをサニタイズし、XSS などを回避できます。また、PHP フレームワークを使用する場合は、おそらくHTML Purifier の独自のラッパー。たとえば、Yii フレームワークにはそれがあります。

于 2013-04-09T07:41:14.130 に答える