gpt4 book ai didi

ruby-on-rails - 我将 Rails3 与 tinymce 一起使用。如何呈现用户关闭浏览器javascript然后输入xss?

转载 作者:数据小太阳 更新时间:2023-10-29 07:07:58 26 4
gpt4 key购买 nike

我有一个用 Rails3 编写的站点。我的帖子模型有一个名为“内容”的文本列。在帖子面板中,html 表单使用 tinymce 将“content”列设置为 textarea 字段。在首页,因为使用了tinymce,post.html.erb的代码需要用<%= raw @post.content %>这样的原始方法来实现。 .

好的,现在如果我关闭浏览器 javascript,这个文本区域可以在没有 tinymce 的情况下输入,也许用户会输入任何 xss,比如 <script>alert('xss');</script> .我的前台会显示那个警告框。

我尝试 sanitize(@post.content)在 posts_controller 中,但 sanitize 方法将相互过滤 tinymce 样式。例如,<span style='color:red;'>foo</span>将变为 <span>foo</span> .

我的问题是:如何在过滤xss输入的同时保留tinymce风格?

最佳答案

sanitizer 可以设置为允许样式属性。在你的 config/application.rb 添加:

config.action_view.sanitized_allowed_attributes = ['style']

sanitize 方法也有它允许的 css 属性和关键字的默认值。参见 sanitizer.rb allowed_css_propertiesallowed_css_keywords 获取默认列表。

要添加一些当前不允许的内容,请将其添加到您的config/application.rb:

config.action_view.sanitized_allowed_css_keywords = ['puke']

--

如果您正在做比这更复杂的事情,那么您将需要编写一些代码。我不建议从头开始,查看 Loofah Gem用于编写 html 洗涤器的良好库。

关于ruby-on-rails - 我将 Rails3 与 tinymce 一起使用。如何呈现用户关闭浏览器javascript然后输入xss?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6409536/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com