【问题标题】:Why do I get a cross-site scripting warning with Rails?为什么我会收到使用 Rails 的跨站点脚本警告?
【发布时间】:2013-05-03 21:21:19
【问题描述】:

在我的 Rails 应用程序的视图模板中,我必须为 CoffeeScript 变量分配一个实例值。我做了这样的事情:

:coffeescript
 44   @selected_tab = "#{@tab}"

它工作正常,但我收到跨站点脚本警告:

Unescaped parameter value (around line 44)
find_and_preserve(Haml::Filters::Coffee.render_with_options("@selected_tab = "#{params[:tab]}" ", _hamlout.options))

【问题讨论】:

    标签: ruby-on-rails ruby coffeescript xss


    【解决方案1】:

    我认为您最好不要将变量直接插入到您的咖啡脚本中。

    看看这些方法:http://railscasts.com/episodes/324-passing-data-to-javascript

    【讨论】:

    • 三种方法,一种方法显示使用脚本,这就是我正在做的。
    • 第一个看起来很不安全。这完全取决于转义是否是上下文的。
    【解决方案2】:

    转义需要与上下文相关。在这个博客系列中,有一些事情可能会出错的例子:http://erlend.oftedal.no/blog/?blogid=91

    我鼓励您阅读 OWASP XSS 预防备忘单:https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet

    【讨论】:

    • 那么,有什么选择呢?我应该如何分配变量?
    猜你喜欢
    • 2021-12-14
    • 2014-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 2011-11-10
    相关资源
    最近更新 更多