0

node.js を使用して構築したチャット クライアントがありますが、サーバーに送信する前にメッセージを入力するにはどうすればよいでしょうか?

4

2 に答える 2

2

何もない。クライアントが「悪い」ものを送信するのを止めることはできません。検証とクリーニングはサーバーで実行する必要があります。クライアントに表示するときは、クリーン/フィルター/エンコードする必要があります。

多分(クライアント側):

socket.on('message', function(e) {
  txt = e.data;

  // HTML encode
  txt = txt.replace(/&/g, '&');
  txt = txt.replace(/</g, '&lt;');
  txt = txt.replace(/>/g, '&gt;');

  // Or strip tags
  txt = txt.replace(/<[^>]+>/g, '');

  // Or create a text node
  node = document.createTextNode(txt);
});

HTMLエンコーディング/エスケープでこれを読む必要があります。

于 2013-03-10T19:31:26.467 に答える
1

フィルタリングに関しては、サーバーに送信する前に実際に何もする必要はありません。サーバー側でフィルタリング/検証を行う必要があります。あなたがそれをした場合、クライアント側の人々はそれを簡単に回避することができます。

于 2013-03-10T19:31:03.520 に答える