使用静态参数避免XSS / XSRF攻击

时间:2013-07-31 20:32:51

标签: ajax xss csrf

我有一些遵循基本模式的ajax请求:

function(visitorId, sessionId, ...parameters more specific to method call..)

访问者和会话ID是随机生成的服务器端。访问者和会话ID始终用于在我们的软件中通过实时会话验证真实访问者。签名的一种方法:

function(visitorId, sessionId, issueId)

返回当前客户问题的状态(打开,关闭,等待等),表示为int。今天,我收到了一位客户的安全报告,说明这种特殊方法容易受到跨站点请求伪造的影响,因为

  

测试结果似乎表明一个漏洞,因为相同的请求在不同发送两次   会话,同样收到答复。这表明,没有一个参数是动态   该应用程序是容易受到CSRF(会话标识符仅在饼干发送),因此

有几点需要注意:

  1. 这些方法仅适用于POST请求,如果重要的话。

  2. 我们软件中的“会话”与浏览器或IIS的会话无关。我们的软件是一个Windows服务,因此IIS可能会关闭,浏览器可能会关闭,我们将保留该会话,直到我们的内部会话跟踪器确定它的时间来摆脱它。

  3. 3. Ajax请求被发送到WCF服务,然后将请求中继到我们的Windows服务。

    这让我摸不着头脑,因为我们的大多数方法都遵循这种静态参数模式,但它们也倾向于返回唯一数据。这让我想知道我是否只是返回状态以及一些我可能通过此安全测试的随机数据,但这似乎并不合适。解决这个问题的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

最好是回复报告,解释您的会话如何运作,结果这种“检测”是误报。

来自某些“顾问”的大量“漏洞报告”是来自错误配置或混乱的扫描程序(如HP AppScan)的重新打包结果。在没有实际问题的情况下,您无需将代码更改为“遵守”。

只需提及“误报”并看看他们说的话:)。