【问题标题】:Getting the url query parameters in Play Template获取播放模板中的url查询参数
【发布时间】:2014-04-17 11:52:53
【问题描述】:

我想从我的播放模板中访问 url 查询字符串参数

所以我有以下网址:

myexample.com/product?q=mytermhere

我想在我的模板代码中访问这个“q”参数,以便在 javascript 中使用。这是否可能不通过整个控制器路由。谢谢

【问题讨论】:

  • 将此查询字符串作为参数传递给您的模板文件

标签: playframework playframework-2.0


【解决方案1】:

在 javascript 中使用

永远不要将用户输入(例如查询参数)放入脚本标记中。曾经。不管你做什么转义,如果你这样做,你的代码中就会有 XSS 漏洞。保证。没有办法安全地做到这一点。

如果您想从 JavaScript 访问用户输入,请将其放在 HTML 中的某个位置 - 例如,在元标记中,或在常规标记的数据属性中。

要做到这一点很简单,请求上有一个名为queryString的属性,它是一个包含查询字符串参数的映射。

【讨论】:

  • 感谢您的建议,但这次我所做的只是在一个简单的函数中使用它来突出显示页面文本中的搜索词。 xss 不可能造成任何破坏。它不会靠近数据库,也不会持久化。 q="searchterm" 只是传递给客户端上的一个函数以突出显示文本。就是这样。
  • 这正是我所担心的,你所描述的是一个经典的反射型 XSS 漏洞——数据不需要持久化就容易受到 XSS 的攻击,反射型 XSS 漏洞可以被利用简单地将用户重定向到一个页面,该页面回显(或传递给函数,如您所说)查询字符串中的数据在不安全的上下文中(即在脚本标记内)。
  • 那么危害在哪里呢?他们究竟能做什么——他们不能损害数据库,他们不能进入应用程序代码,他们不能做任何事情来改变系统的状态。他们可以通过重定向到其他页面来娱乐自己,但仍会为新用户提供正确的页面。
  • 如果我将您重定向到,或以某种方式强迫您单击指向myexample.com/product?q=<img%20src=x%20onerror=alert(0)%20> 的链接,并且 q 参数容易受到反射 XSS 攻击,那么 alert(0) 代码将在页。将 alert(0) 替换为进行恶意 AJAX 调用等的内容。
猜你喜欢
  • 2016-05-11
  • 1970-01-01
  • 1970-01-01
  • 2018-12-24
  • 2013-12-06
  • 2017-02-01
  • 2012-09-07
  • 2018-05-29
  • 1970-01-01
相关资源
最近更新 更多