如果我的研究是正确的,这里是我应该做的.
>我应该存储编辑器数据两次(一次为HTML,一次为Markdown)
>在存储之前,我应该通过Whitelist运行HTML.
>我应该通过AntiXSS来运行HTML(在显示之前)
>我应该使用Markdown数据来重新填充Markdown进行编辑.
任何人都可以确认或否认是否正确,还可以添加任何有用的投入?
参考
Reformat my code: Sanitize Html
StackOverflow: how do you store the markdown using wmd in asp net
StackOverflow: sanitize html before storing in the db or before rendering antixss library
StackOverflow: store html entities in database or convert when retrieved
解决方法
我非常类似于Stack Overflow团队的做法:
>我使用wmd.js作为客户端编辑器.
>我使用MarkdownSharp服务器端处理.
>我用Jeff Atwood’s Sanitize HTML来处理HTML.
这里有一些关于Markdown的资源:
> Introducing MarkdownSharp
> Three Markdown Gotchas
> Markdown,One Year Later
> Reverse Engineering the Markdown Editor
> WMD Edtior Reverse Engineered
底线:
>我以提交的形式存放帖子;它使用MarkdownSharp显示.>我使用Jeff Atwood的方法(On输出,而不是输入)来清理HTML.>我利用ASP.NET MVC的最佳实践(一个高度主观的术语)来处理XSS和XSRF.