anything-llm [BUG]:嵌入API改进

zynd9foi  于 2个月前  发布在  其他
关注(0)|答案(4)|浏览(55)

AnythingLLM运行情况如何?

所有版本

发生了什么?

当我在网站上使用'embed'功能时,API是不安全的。我可以拦截所有的API请求,然后在任何地方进行利用。这需要紧急修复。甚至可以修改'sessionId'来绕过现有的会话请求限制。

是否存在已知的重现步骤?

  • 无响应*
vx6bjr1n

vx6bjr1n1#

会话ID不是一个安全功能。它是用来引用聊天记录,以保持页面加载时其历史记录的一致性。这是为了替代通过用户ID进行跟踪的功能而存在的。

u7up0aaq

u7up0aaq2#

会话ID不是一个安全特性。它是用来引用聊天记录,以保持页面加载时的一致性。这是为了替代通过用户ID进行跟踪的能力。
我明白你的意思,但是为什么我可以拦截API请求并在其他地方使用它们呢?例如,我捕获URL端点、头部和正文来创建一个使用Node.js的后端。然后我尝试发送一个POST请求。它可以发送请求,但从安全标准的Angular 来看,这种情况不应该发生。你应该使用类似'crypto-js模块'之类的东西对数据进行加密,然后再发送请求,以防止未经授权的使用。
我相信如果我要使用'anything-llm'服务的其他人的聊天框,我有信心可以拦截他们的请求,然后将它们用于其他地方,这意味着我可以在任何地方发送无限制的请求。

yftpprvb

yftpprvb3#

这只是来自Origin头部的CORS阻止,当然可以使用Burpsuite等工具进行伪造。添加嵌入式聊天功能是因为许多人想要暴露类似的东西,但我们在嵌入式配置样式指南中警告了这一点:https://github.com/Mintplex-Labs/anything-llm/tree/master/embed#security
我不同意你的观点,认为这是一个烦恼,可能不应该启用。域名白名单是否能改善这个问题?
anything-llm/server/utils/middleware/embedMiddleware.js
第65行 in 2fabc84
| | consthost=request.headers.origin??""; |
它不能防止会话ID旋转或重放。我们可以添加一个IP记录器并根据IP限制,但这仍然不能使整个端点更健壮,因为所有这些客户端端的事情都可以被篡改吗?我认为这可能是一个很好的改进?

jogvjijk

jogvjijk4#

这将只是CORS阻止来自Origin头部,当然可以使用Burpsuite等工具进行欺骗。添加嵌入式聊天功能是因为许多人想要暴露类似的东西,但我们在嵌入式配置样式指南中警告了这一点:https://github.com/Mintplex-Labs/anything-llm/tree/master/embed#security
我不同意你的观点,认为这是一个烦恼,可能不应该启用。域名白名单没有改善这个问题吗?
anything-llm/server/utils/middleware/embedMiddleware.js
第65行在2fabc84
| | consthost=request.headers.origin??""; |
它不能防止会话ID旋转或重放。我们可以添加一个IP记录器并根据IP限制,但这仍然不能使整个端点更健壮,因为所有这些客户端端的事情都可以被欺骗吗?我认为那可能是一个很好的改进?
是的,先生,您理解得正确,正如您所想。

相关问题