对于应用程序来说,从代码库到任何用户指定的 url 的 get 请求是安全的

Is is safe for an application to hit a get request from codebase to any user specified url

提问人:akash deep 提问时间:2/23/2023 更新时间:2/27/2023 访问量:138

问:

想要确认应用程序使用 python 中的 requests 模块向任何用户指定的 url 发出 get 请求是否安全。 是否有任何安全问题,以及任何要遵循的最佳实践。 我们在 get 调用上应用了 10 秒超时。

谢谢

python-3.x http 安全 https python-requests

评论


答:

1赞 zok 2/27/2023 #1

基本上它是不安全的。存在所谓的服务器端请求伪造 (SSRF) 攻击。

因此,至少您的服务器可能面临 IP 地址、User-Agent(Python 请求库添加的默认标头)泄露的风险。如果基础架构中的某些内容易受攻击,那么这将使攻击者更接近成功。

确保谨慎处理响应,并进行强有力的验证。从单独的 IP 地址发出请求和/或混淆 User-Agent 标头可能是个好主意。

我想说的是,您的安全措施的严重性应该与您存储的数据的敏感程度相对应。

有关更多详细信息,请查看服务器端请求防伪造备忘单

评论

0赞 akash deep 2/28/2023
嘿,非常感谢@zok提供这些信息,但是我们只使用从响应中返回的 url:如下所示:我们没有将实际响应存储在任何地方。我们还为User-Agent使用了特定的硬编码值 这些步骤能确保安全性吗?response.url
1赞 zok 2/28/2023
如果隐藏 IP 在您的情况下没什么大不了的(例如,如果已经为传入请求公开了相同的 IP),那么没关系。如果对您的用户可见,请确保您的服务器(在其周围的本地网络中)无法访问任何内容,这些内容可以通过重定向到某个敏感地址(似乎不太可能)进行响应。response.url
1赞 zok 2/28/2023
请注意,它目前可能是可以接受的,但它可能会在一段时间后暴露漏洞,当您忘记它并且您的后端会发展时。你应该记住它。