1

我一直在重写我的(相当简单的)网站,使用 Yesod 作为熟悉框架的一种方式。其中一部分涉及提供一些简单的静态(但格式化)内容。为此,我决定使用 Yesod 书中描述的 nicHtml 字段:

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

它允许简单的格式化,正如书中所说,“感谢 xss-sanitize 包,所有用户输入都经过验证并确保没有 XSS 攻击。”

然而,一切都不是很好。某些格式在您将其输入该字段时似乎有效,但在输入和提交之间的某处被清除。特别是,表单使用嵌入在“样式”属性中的 css 来执行诸如中心文本之类的操作,而正是这些基于 css 的格式化元素似乎被淘汰了。

我使用 print 语句来检查是否不是我的代码弄乱了它。由于它似乎不是,我假设 xss-sanitize 不喜欢任何嵌入式 css 并将其删除。修改 Yesod.Form.Nic 以删除对 sanitizeBalance 的调用似乎可以解决问题,因此这似乎是原因。

现在,我可以就这样离开它,因为编辑这些静态页面无论如何都需要成为受信任的用户(即目前的我),所以我不太关心验证是否肮脏。但感觉就像是一个黑客,所以我的问题是 - 有没有其他方法可以解决这个问题?或者是否有另一个我不知道的包为 Yesod 提供了一个完整的 HTML 编辑器字段?

4

2 回答 2

1

您会为此在 Yesod 问题跟踪器上提交错误吗?我认为无论我们使用哪个编辑器,我们都必须通过编辑器允许基本的 css。在您的受信任用户的情况下,现在您可以找到 NicEdit 字段类型并创建一个根本不会被过滤的类似类型。也许我们应该创造这样一个领域。

于 2011-08-05T03:44:42.160 回答
1

实际上,我们现在正在寻找其他可能的富文本编辑器,以便在 Yesod 网站上使用,所以我们在那里使用的任何东西很可能最终都会以 yesod 形式出现。最近 Greg 指出Aloha 编辑器乍一看很酷。

于 2011-08-03T19:30:35.717 回答