4

我有一个页面,我想简单地将查询字符串传递给另一个页面。没有可用的服务器端编程,只有这个特定客户端的 HTML(我只能使用 javascript/jquery)。他们有一个过程,他们希望将几个参数传递给定价页面,如下所示:

http://www.mydomain.com/pricing.html?affiliate=123&store=345

在定价页面上,我要做的就是收集完整的查询字符串 (?affiliate=123&store=345) 并将其传递给应用程序页面:

http://www.mydomain.com/application.html?affiliate=123&store=345

如果我使用以下 javascript 作为定价页面上的链接将它们传递到应用程序页面,我是否引入了任何类型的跨站点脚本或其他漏洞?

<script type="text/javascript">document.write('<a href="http://www.mydomain.com/application.html'+location.search+'">Apply Now</a>');</script>
4

2 回答 2

2

是的,你很容易受到 XSS 的攻击。

$("<a>").attr("href", 'http://www.mydomain.com/application.html'+location.search).text("Apply now").appendTo(document.body)
于 2013-09-13T19:39:36.477 回答
0

简短的回答,您没有引入任何不存在的漏洞(因为您已经通过查询字符串将该信息传递到定价页面)。

更长的答案,这取决于您如何处理 application.html 页面中的信息。如果您允许在查询字符串中传递的变量更改状态或访问服务器上的受保护信息,或者将它们提供给例如未经验证的 SQL 查询,那么是的,您正在引入漏洞。但这不会仅仅通过使用不同的方法来传递参数(即 POST)而改变 - 这是您在获取数据后如何验证和使用数据的一个特征。

于 2013-09-13T17:33:15.730 回答