gpt4 book ai didi

java - 为什么需要验证通过调用 HttpSession.getAttribute() 获得的 servlet 中的数据?

转载 作者:行者123 更新时间:2023-11-29 09:08:53 26 4
gpt4 key购买 nike

我是 WebApp 编程的新手,正在尝试了解不验证通过调用 javax.servlet.http.HttpSession.getAttribute() 接口(interface)方法获得的数据的安全隐患。我正在使用已标记此潜在漏洞的安全代码扫描程序。

我知道作为一般规则,我应该始终验证从不受信任的来源获得的数据,但我想我不明白为什么 session 的内容会不受信任。这是基于我的(可能没有根据的)假设,即可以将数据添加到 session 的唯一方法是调用 HttpSession.setAttribute() 并且只有在相同范围内的可信代码应用程序应该能够做到这一点。

我想我真正想问的是攻击者如何利用无法验证从 HttpSession 获取的数据的应用程序。是不是因为实现是未知的,并且不能保证 session 的内容不是从 HTTP 请求中的数据(除了 session ID)以某种方式构造的,因此容易被篡改?或者是因为信任 session 的内容意味着隐式信任 session ID,这可能会被泄露并指向错误的 session ? (尽管要做到这一点,攻击者似乎必须有一些方法来创建包含受损数据的备用 session )。

假设 session 的内容不是根据请求中的数据构建的,是否可以利用此漏洞的唯一方法是是否存在另一个允许攻击者创建错误 session 的漏洞?例如。上传可执行代码并让服务器执行它并返回捕获和重放的 session ID?

谢谢

最佳答案

我认为它的意思是用户可能输入了数据,您无法确定用户输入的内容或是否存在任何类型的客户端验证。如果您根据请求中收到的内容盲目地调用函数,那么您可能会遇到安全问题。例如,在为用户输入的客户 ID 检索客户信息之前,请确保 ID 有效并确保用户有权查看数据。

关于java - 为什么需要验证通过调用 HttpSession.getAttribute() 获得的 servlet 中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13422188/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com