我的元素是提供一个平台,允许我的用户编写博客并自定义页面的外观,但是他们只需要使用 html
和 css
.我将使用 python/django
。我只是关心如何推进它。会有任何我应该关注的安全问题吗?如果您能指导我如何进行,我将不胜感激。
最佳答案
对于初学者,请查看 this question .您将需要删除可能产生危险行为的标签(和属性)(如脚本标签或 onload 属性)。 给他们字段来添加他们的 css 和 html(为此添加一个漂亮的所见即所得的编辑器,如 ckeditor 、 tinymce 等。
在 css 中,剥离 html 和删除 url 应该就足够了(让我知道这部分是否有其他内容。)。将 css 放在头部的标签中。
对于 html,您应该在强制内容(如果有全局导航栏等)之后使用安全过滤器 {{content|safe}} 添加内容。 同样,尽快杀死危险标签...脚本、iframe 等。
有了这样的东西,用户应该可以控制他们的内容布局和网站该部分的样式。这是假设您希望所有用户都具有相同的结构(即右侧边栏显示 3 个最新条目)。
如果你想给他们更多的定制,最简单的方法(对开发者和用户来说)就是给他们一个选项列表(即侧边栏可以显示 n 个最新的条目,它显示/隐藏博客信息,它确实有社交共享选项,博客条目启用评论等)。
关于html - 允许用户自定义网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30684512/