2011-08-03 18 views
1

私はフレームワークに精通するために、Yesodを使って私の(かなり単純な)ウェブサイトを書き直しました。その一部には、単純な静的(しかしフォーマットされた)コンテンツを提供することが含まれます。それは、すべてのユーザー入力、「、ブックが言うように、XSS-サニタイズパッケージのおかげで簡単な書式設定を可能にし、YesodのnicHtmlFieldを修正する別の方法はありますか?

http://www.yesodweb.com/book/forms

:私はイェソドブックに記述されているnicHtmlフィールドを使用することを決めたことを行うために、検証され、XSS攻撃がないことが保証されています。

しかし、すべてが良くないです。一部の書式設定はフィールドに入力すると機能しますが、入力と送信の間のどこかで消去されます。特に、このフォームでは、「スタイル」属性に埋め込まれたcssを使用してセンターテキストなどの処理を行います。これらのCSSベースの書式設定要素は消去されるようです。

私は何とかそれを台無しにしていた私のコードではないことを確認するために印刷ステートメントを使用しました。それはそうではないので、私は、xss-sanitizeは埋め込まれたcssを好きではなく、それを削除すると仮定します。 sanitizeBalanceへの呼び出しを削除するためにYesod.Form.Nicを変更すると、問題が修正されているように見えるので、そのように思われます。

これらの静的ページを編集するには信頼できるユーザーでなければなりません(現時点では私です)ので、残念な点を確認することはあまり気にしません。しかし、それは何か、ハックのように感じるので、私の質問は - これの周りに他の方法がありますか?または、YesodのHTMLエディタフィールドが壊れていないとわからない別のパッケージがありますか?

+0

このようなサウンドは、Yesodで修正/回避する必要があります。 [issue tracker](https://github.com/yesodweb/yesod/issues)に報告することをお勧めします。 – hammar

答えて

1

これについては、Yesod問題トラッカーにバグを報告しますか?どのエディタを使用していても、エディタを使って基本的なCSSを許可する必要があると思います。信頼できるユーザーの場合は、NicEditフィールドタイプを見つけて、まったくフィルタリングされない類似のタイプを作成することができます。おそらく私たちはそのようなフィールドを作成する必要があります。

+0

私はバグレポートを提出します。私は自分のプロジェクトですでにこのようにYesod.Form.Nicを修正しました。これは、sanitizeBalanceの呼び出しを削除するための1行の変更です。 – chrisdb

+0

更新:githubでホワイトリストのCSSスタイルを使用できるようになりました。すぐに新しいパッケージのバージョンがリリースされ、Yesodは少なくとも0.9のリリースでそれを使用します。 –

1

私たちは現在、Yesodのウェブサイトで使用するために、他の可能性のあるリッチテキストエディタを実際に探しています。したがって、私たちが使用しているものはすべてyesod-formのモジュールになります。最近、グレッグ氏は一見、かなりクールに見えるAloha editorを指摘した。

+0

nicHTMLフィールドの問題はわかっていますか?そうであれば、ブック内の例として使用しないことをお勧めします。少なくとも、今のところYesodの書式設定が正しく機能しないということは言及していません。 – chrisdb

+0

いいえ、あなたが上げている問題は知られていませんでした。私たちはYesodサイトでまったく違うバグに遭遇しました。これは比較的最近の発見であるため、まだどこにいても更新していません。 –

+0

@MichaelSnoyman、[Redactor](http://imperavi.com/redactor/)をご覧ください –

関連する問題