2012-01-11 4 views
2

私のサイトでは、誰でも無料アカウントを持つ人がテキストを入力できます。これまで、HTMLタグなどを取り除いて悪意のあるものを入力できないようにしました。しかし、今、クライアントは、ユーザーにhtmlを入力させることが可能かどうかを尋ねました。ユーザーがHTMLを入力できるようにする - これは賢明ですか?

このような背景にある考え方は、フォームなどの複雑なものを追加したいユーザーもいます。彼らが入力したものは、後で別のページに表示されるので、他の人が記入して提出できるフォームが必要な場合があります。

私の質問は、このリスクは何ですか?明らかに、私は注射攻撃の危険性を減らすためにキャラクターから脱出するだろうが、それ以外に何を知っておく必要がありますか?

これはとても危険なので、私はそれをまったくやってはいけないのですか?

+0

フォームが実際に提案されたユースケースである場合は、フォームの送信先を考える必要があります.HTMLページのフォームは何もしません。 – Random832

答えて

2

多くのリスクがあります。XSSが最もよく知られています。

文字をエスケープすると、HTMLは表示されません(リンクの代わりに、たとえば<a href="http://example.com">link</a>と表示されます)。

HTMLを許可するのは安全です。非常にです。

StackOverflow - wmd-newでここで使用されているマークダウンエディタのようなものを使用することを検討してください。

1

ワンNIT-うるさいビット...

に助け彼らは悪意のある何

に入ることができないことを保証するセキュリティが上へ、今すぐ完全:)であると思い込まず実際の回答...


ここで最大のセキュリティ問題はCross-site Scriptingです。

このビットは、私が特に厄介見つけるものです:

彼らは他の人が完了し、

何に提出を提出することができ、フォームをすることができ?彼らは何とかサーバー側の機能を設計していますか?または、彼らは外部リソースに提出するフォームを書いていますか?それは危険だと思う。

次に、scriptタグのようなものになります。非常に悪意のあるものはここで行うことができます。また、ユーザーが独自のHTMLフォームを作成するのに十分な知識を持っている場合(手作業で使用されているのか、ツールが使用されているのか)、他のリソースにデータを送信するにはJavaScriptが必要です。

editors designed for thatで簡単なマークアップ効果を実現できます。しかし、フォームはまったく新しいボールゲームです。これは本当に危険です。

関連する問題