首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在测试web应用程序的安全性时,是否需要测试它的所有输入参数?

在测试web应用程序的安全性时,是否需要测试它的所有输入参数?
EN

Security用户
提问于 2013-07-16 02:57:05
回答 3查看 1.1K关注 0票数 4

我们知道,由于缺乏验证而测试输入参数是黑匣子web漏洞评估的一部分,但是,是否有必要测试所有输入参数(参数、cookie、HTTP标头、URL.)?如果我们不测试一个参数,那么该参数可能是易受SQL注入或XSS攻击的参数。

排序是常见的答案之一,但是,如果完全非关键功能中的SQL注入打开了对数据库的访问权限,使攻击者能够完全控制数据库,那么如何确定优先级呢?

如果我们必须选择输入元素的样本,如何选择该样本?

在选择要测试哪些输入参数时,

应仅以经验或本能为基础来排除?

注意:我知道正确的做法是测试所有参数,但由于时间限制,有时这是不现实的。

EN

回答 3

Security用户

发布于 2013-07-16 03:12:32

  1. 是的,如果你想要执行一个好的测试,你需要测试所有的参数。您可以选择使用自动测试和手动测试,这取决于输入变量的重要性以及它在应用程序中的位置。请注意,虽然某个输入变量可能看起来是非关键的,但可能会给攻击者留下一个向量来获取应用程序的更重要的功能(想想存储的XSS)。
  2. 根据可能的可能性和对你的业务的影响来确定优先次序。如果该漏洞允许执行命令或转储数据库的所有内容,包括机密信息,则需要尽快对其进行修补。如果它只允许访问公共信息(不能滥用它在应用程序中获得更多特权或访问底层操作系统),那么您可能会降低它的优先级(取决于您正在优先处理的其他问题)。
  3. 我不知道什么是“输入元素”,但是如果您指的是参数,则需要选择所有的元素。你可以选择在某些领域比其他领域更多地关注(取决于你的预算/时间)。
  4. 这取决于,你需要做你的客户要求,显然如果你的经验已经告诉你,某些变量比其他变量更易受影响,你可能只是给予他们更多的关注。但我认为你需要考虑到客户的要求。

即使某个功能被认为不重要,您也始终需要评估您的攻击对应用程序和存储在应用程序中的信息的影响。相反,如果您有一个利用漏洞的关键功能,但实际上无法从它获得任何有价值的信息,那么您应该降低修复它的优先级。因此,利用漏洞的影响是重要的,而不是您正在利用的函数的关键程度。需要根据影响来确定优先次序。

票数 5
EN

Security用户

发布于 2013-07-16 10:31:56

答案肯定是“是”、“否”和“视情况而定”。问这个问题的更好的方法是“知道我的资源有限,我应该如何优先审查我的网络应用程序?”

在安全方面,成功并不被定义为100%安全。成功应该被定义为将风险降低到一个可接受的水平。您的“可接受的风险水平”应该基于您的应用程序做了什么,它保护了什么,如果发生了一些不好的事情,后果是什么。我希望对运行我的起搏器的代码做更多的评论,而不是我花一美元买的Android游戏。

对于99%的组织来说,资源是有限的。你不太可能有足够的资源来全面测试你的web应用程序的各个方面。您必须了解您有哪些资源可供审查,然后优先排序。

每个应用程序都是不同的,因此您应该做出自己的判断,但以下是一些我会优先考虑的事情:

作为SQL查询的一部分使用的输入(SQL注入)

作为已执行命令的一部分使用的输入(命令注入)

用作LDAP查询的一部分的输入(ldap注入)

从一个用户返回到其他用户的输入(持久化XSS)

从一个用户返回回显给该用户的输入(反映XSS)

作为修改用户帐户的操作的一部分的输入

作为任何复杂处理的一部分使用的输入(资源耗尽DOS)

传递给任何以提升的权限运行的进程的输入。

此外,你知道你不能详尽地检查你的web应用程序的每一个方面,你可以通过添加额外的缓解措施来“欺骗”:

在没有提升权限的情况下运行web服务器

数据库访问帐户应具有最低权限。

为不同类型的数据库访问设置单独的帐户。如果95%的DB调用是只读的,则不要使用具有写入权限的帐户。

票数 4
EN

Security用户

发布于 2013-07-16 07:49:02

正如其他人指出的那样,简单的回答是肯定的,有必要测试所有的输入参数,因为当涉及到它时,您不知道应用程序的编码有多好或有多差。

然而,正如你已经说过的,当有不现实的最后期限从业务线-谁没有一个更好的说法,真的不关心的时候,这是不可能的。

OWASP可能能够提示您应该优先考虑哪些字符。例如:http://owasp.org/index.php/SQL_注入_预防_作弊_板材 (OWASP网站)

但是,说到这里,您现在已经创建了更大的工作负载。您必须检查每个可能的漏洞,并确定哪些字符是特定于该漏洞的。

单独的任务可能需要更长的时间(至少在最初)比测试所有字符更长,而且不会那么彻底。(不用说)

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/39014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文