我有一个web应用程序,并收到以下格式的JSON请求中的类名作为输入
{ "type":"ClassName","id":"userid", and so on...一位安全研究人员通知说,即使采取了必要的预防措施,这也是一个安全问题。但是他没有提供任何攻击载体,我想知道将类名作为值发送会有什么风险
更新:我已经将使用正则表达式的可能类列在白名单中
发布于 2014-07-10 02:31:19
关键问题在您给出的语句中:
“即使采取了必要的预防措施”
老实说,你不知道。你可能认为你需要,但事实并非如此。经常会有问题询问某个特定的设置是否安全。答案总是否定的。没有什么是安全的,但这不应该阻止程序员尝试让一些东西尽可能地安全。在被认为是安全的系统上不断发现新的安全漏洞。不可能对所有这些都进行解释,因此在安全斗争中毫不让步是很重要的。我可能不能为你提供一种特殊的攻击手段,但有人可能会。有人可能是通过新的攻击来破坏你的系统的人。
主要的一点是,您无法知道某人可能如何使用特定的信息来攻击您的系统。这种情况下的漏洞是提供用户不一定需要的信息。安全不仅仅是防御人们所知道的攻击。
发布于 2014-07-11 04:46:29
你的实现没有立即的问题(假设它被正确地实现)。
您必须绝对确保您验证了输入,并且输入必须是有效的输入(预定义集合的成员或白名单)。
正确验证您的值后,允许用户从一组可能性中选择类名与允许用户从一组可能性中选择标识符串之间没有太大区别。在这两种情况下,程序都会使用输入来决定采用什么行为。
唯一真正的区别在于你放在潜在攻击者手中的信息。如果您向我展示了一组类名,那么我很清楚您是如何处理这些输入的,因此我对如何利用这些信息有一些想法。我可能错了,你的实现可能是安全的.但尽管如此,它看起来并不安全,而且近乎不专业(我希望你不打算销售这个产品)。
https://stackoverflow.com/questions/24660856
复制相似问题