隐藏的字段漏洞

时间:2014-08-08 14:46:29

标签: fortify

我使用Fortify源代码扫描程序完成了源代码扫描(ASP)。

许多隐藏字段显示为漏洞。像这样:

<input type="hidden" name="ToSave" value="0" />

如何修复此问题以接收通过测试?

提前致谢 马赫什

1 个答案:

答案 0 :(得分:1)

如果这是应用程序状态,并且未被用户修改:

通过浏览器传递应用程序状态总是一个坏主意,并且是黑客将利用的第一件事。

如果这是应用程序状态:使用正确的ASP会话管理并在将页面发送给用户时在服务器上保存会话状态,并在返回请求时在服务器上查找会话状态。在使用C#的ASP.NET中,您可能会执行以下操作:

Session(“ToSave”)  =  false;

将响应发送到浏览器时(例如发送页面)。然后,当您收到请求时,因为您正在使用ASP会话管理,会话将具有您设置的状态。

如果这不是应用程序状态,但是在浏览器中由JavaScript计算并在服务器端使用的隐藏字段:

请查看应用程序的设计。我做了大量这些代码审查,并且通常发现应用程序正在用JavaScript做一些事情,只能在服务器端完成。一个例子是计算表格上的测试分数,将该分数放在隐藏字段中并接受服务器上的该字段。另一个例子是计算流程中的“下一页”并将标记放在隐藏字段中。如果您想在浏览器上提供类似评分的内容以方便用户使用,那么就可以在服务器上进行官方计算(以及决定,如果适用)。

攻击者可以轻松查看这些值并创建一个会破坏您的应用程序的请求,或者更糟糕的是,让攻击者获得他或她不应得的东西。

在任何情况下隐藏字段都会缓存在浏览器上,就像任何页面都被缓存一样,因此如果隐藏字段包含您希望用户无法看到的数据,则使用隐藏字段可能不明智。

所以,最重要的是,我同意你不应该使用隐藏字段。