gpt4 book ai didi

security - Rails 5 - 谁能解释一下从未经净化的请求参数生成 URL 是如何不安全的?

转载 作者:行者123 更新时间:2023-12-02 19:13:32 24 4
gpt4 key购买 nike

假设我有以下内容:

link_to "Excel", params.merge(format: 'xlsx')

Rails 5 说,

Attempting to generate a URL from non-sanitized request parameters! An attacker can inject malicious data into the generated URL, such as changing the host. Whitelist and sanitize passed parameters to be secure.

我想我不明白这怎么不安全。任何人都可以在浏览器中输入他们想要的任何内容,并对我的服务器执行 GET 请求。有什么区别?

我知道我可以用 permit! 来解决这个问题我想要了解的是清理参数可以实现什么效果。

最佳答案

您应该查看来自 OWASP 以及 Rails itself 的文档。

通过使用 permit,您有机会禁止设置您不想传递给 url 助手的属性。

考虑以下来自 Twitter 帖子的链接,定向到您的网站:

http://example.com/your/action?host=phishingscam.example&path=login

如果您的代码如下所示,那么您就有麻烦了:

link_to 'View Something', params.merge(format: 'xlsx')

现在链接转到:

http://phishingscam.example/login.xlsx

攻击网站 phishingscam.example 可以将内容类型设置为 text/html 并呈现看起来像您的登录表单的页面。该用户刚才在您的网站上并点击查看您网站上的某些内容,认为他们已注销并需要重新登录。现在,我们的攻击者拥有了用户凭据,并且可以将其重定向回适当的链接,而用户完全不知道发生了什么。

这是一个简单的场景。事情很快就会变得复杂起来。你应该read the Rails security guide了解更多信息。

关于security - Rails 5 - 谁能解释一下从未经净化的请求参数生成 URL 是如何不安全的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39152870/

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