渗透测试HTML发布问题

时间:2012-08-10 11:07:11

标签: security penetration-testing

我们计划购买安全测试证书。出于这个原因,我们使用Paros工具来测试我们的系统。 系统在前端用GWT编写,数据库连接通过Hibernate进行。 当我们使用此工具测试我们的应用程序时,会发生需要限制的行为。

该工具能够查看传递给服务器的数据。这很好,但是当我们通过工具对数据进行任何更改时,它会在数据库端的系统中进行更新。这是一个很大的安全问题。

有人可以指导我吗?

1 个答案:

答案 0 :(得分:1)

如果您仍在寻找此问题的解决方案,则可以使用请求签名。之前我没有提到它的原因是因为我唯一一次看到请求签名,涉及证书,而且主要是使用Web服务安全标准。另一次我建议实现请求签名是针对移动应用程序 - 它也相对容易,因为您可以使用设备上的证书来执行签名,并且服务器可以验证此签名(实质上是公共密钥加密机制)。

正如您在评论中提到的,它有多个方面 - 一个是防止XSRF,其实质上包括一个nonce,以确保攻击者无法重放请求,或制作可能损害经过身份验证的用户的请求。这个随机数必须来自服务器,因为你使用Javascript创建的任何东西,攻击者也可以创建。此随机数将确保您的请求是特定时间的,并且以后不能重播。

但是,nonce不会阻止用户处于恶意网络中的攻击,并且攻击者正在对所有流量执行MitM攻击。攻击者仍然可以修改请求,并且由于服务器以前从未见过该nonce,因此它会将请求视为有效。为了防止这种情况,您需要采取对策 - 一个,所有流量应通过SSL,两个,所有请求必须签名,以防止篡改。签名部分特别难,尤其是如果您必须确保攻击者无法执行相同的签名。我看到的示例涉及webapp的证书级别身份验证,然后使用这些证书执行签名 - 这对您似乎正在开发的应用程序的要求可能过于严格。其他方法涉及使用用户拥有/知道的东西 - 可能是令牌,密码,秘密答案等 - 攻击者无法复制,并使用该信息签署请求。

Here是一个关于如何通过PHP实现此目的的示例。不过,我不知道这种机制是否可以适应你的目的。 OAuth 可能是另一种可能的方法,但由于我从未见过应用程序这样做,我不太确定。

很抱歉,我没有具体的方法或代码示例供您查看,但我看到的大多数实现仅仅是从设计的角度来看,而不是实际的代码观点。