Haskell 有没有其他方法来修复Yesod';尼希特尔菲尔德是谁?

Haskell 有没有其他方法来修复Yesod';尼希特尔菲尔德是谁?,haskell,yesod,Haskell,Yesod,我一直在用YesSOD重写我的(相当简单的)网站,以此来熟悉这个框架。其中一部分涉及提供一些简单的静态(但格式化)内容。为此,我决定使用YesSOD书中描述的nicHtml字段: 它允许简单的格式化,正如书中所说,“多亏了xss sanitize包,所有用户输入都得到了验证并确保没有xss攻击。” 然而,并非一切顺利。当您将其输入字段时,某些格式似乎起作用,但在输入和提交之间的某个位置被删除。特别是,表单使用嵌入在“样式”属性中的css来处理中心文本之类的事情,而这些基于css的格式元素似乎被

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

它允许简单的格式化,正如书中所说,“多亏了xss sanitize包,所有用户输入都得到了验证并确保没有xss攻击。”

然而,并非一切顺利。当您将其输入字段时,某些格式似乎起作用,但在输入和提交之间的某个位置被删除。特别是,表单使用嵌入在“样式”属性中的css来处理中心文本之类的事情,而这些基于css的格式元素似乎被删除了

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


现在,我可以就这样离开了,因为编辑这些静态页面无论如何都需要成为一个受信任的用户(也就是说,现在的我),所以我不太在乎验证是否有不好的地方。但这感觉就像是一种黑客行为,所以我的问题是——有没有其他方法可以解决这个问题?或者是否有另一个我不知道的包为YesSOD提供了一个未损坏的HTML编辑器字段?

我们现在正在寻找其他可能的富文本编辑器,以便在YesSOD网站中使用,因此很可能我们在那里使用的任何东西最终都会以YesSOD形式出现一个模块。最近格雷格指出,乍一看,哪一个看起来很酷。

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

我觉得这应该在Yesod中修复/解决。您可能想报告它。我想NICHML字段的问题是已知的?如果是这样的话,最好不要在书中以它为例,至少不能不提到某些格式目前不适合YesSOD。不,你提出的问题不知道,我们在YesSOD网站上遇到了完全不同的错误。这都是一个相对较新的发现,所以我们还没有更新任何地方的东西。我将提交一份错误报告。我已经用这种方式为我自己的项目修改了Yesod.Form.Nic。删除对sanitizeBalance的调用只是一行更改。更新:现在github上允许使用白名单css样式。一个新的软件包版本即将发布,Yesod至少会在即将发布的0.9版本中使用它。