gpt4 book ai didi

Javascript 注入(inject)安全解决方案

转载 作者:行者123 更新时间:2023-11-28 17:01:59 24 4
gpt4 key购买 nike

简而言之,我的问题是,“我如何验证哪些客户端消息来 self 的代码,哪些来自黑客?”

我已经阅读了很多关于 Javascript 注入(inject)的文章,并在 StackOverflow 上阅读了很多答案。不幸的是,给出的答案总是某种“从不信任客户端,始终对请求进行身份验证”。听起来是个好建议,但我不知道如何将它应用到我的情况中。我试图关闭所有客户端访问点到我的服务器端代码,但我仍然有一个,我需要一些帮助来保护它。这是我的情况:

  • 我有两个网站,www.main_site.com 和 www.storage.com
  • 由于我没有时间深入了解的原因,www.storage.com 控制着数据库和其他各种数据存储设备,我不希望任何人接触到这些设备。
  • www.main_site.com 共享对其中一个数据库的访问权限,我在其中有一个运行周期的键码,这些键码随从 www.main_site.com 到 www.storage.com 的每个请求一起发送。如果请求缺少键码,则会显示 404 页面
  • 在 www.main_site.com 的客户端 JS 中,我向 www.storage.com 发出 AJAX 请求,要求它生成一个键码,将键码放在共享数据库中,然后告诉我数据库中的键码。
  • 然后客户端JS向main_site.com的服务器发起WebSocket请求,服务器查找数据库,找到keycode,返回给客户端。
  • 然后客户端使用查询和键码向 www.storage.com 发出 GET 请求。我在 main_site.com 客户端中的代码如下所示:

    $.get("http://www.storage.com/make_code", function (location) {
    socket.emit("get_code", location, function (code) {
    $.get("http://www.storage.com/do_stuff?input="+input+"&code="+code, function (response) {
    //here I do whatever with the response
    }
    }
    }

我知道这段代码有很多错误,但我已经修补了很多漏洞。我通过在其他补丁中使用 CORS 策略,使 www.storage.com 只接受来自 www.main_site.com 的请求。主要是,我看到的最后一个大漏洞和我现在想要解决的一个是有人在 Chrome 或 Firefox 上使用 Dev Tools 插入将调用所有这些并模拟真实调用的 JS。我如何在这里实现服务器端身份验证?我并不特别介意有人调用第一个 $.get 因为它只生成一个代码并返回它在数据库中的位置。我使用额外的用于测试目的。但是一旦他们调用那个 socket.emit,他们就可以为所欲为。我有哪些选择,也许请举例说明我如何在 JavaScript 或 Python 中实现您的建议(www.storage.com 是在 Python 中)。谢谢!

--编辑--我现在可以通过转到 Chrome 开发工具控制台并准确键入上面的代码来破解我自己的网站。我无法阻止别人这样做,那么常用的验证技术有哪些?

最佳答案

有两种情况:

您希望一些用户从 storage.com 获得一些数据

您必须确保您与 main_site.com 的随机用户共享的资源不敏感。如果您想将 storage.com 上的某些数据 X 的访问限制为仅某些用户,他们将必须提供一些凭据 Y。然后您将把 Y 映射到 X 并检查每次调用是否一切正常。

不能让 js 单独提供这些凭据,必须暗示用户。

您想依赖 storage.com 的数据执行自动化任务

Js 调用 main_site.com 后端。它通过安全通道(您可以使用长共享 token 和 https)从 storage.com 检索数据。

main_site.com 然后只向前端提供有用的|不敏感|预处理的数据

关于Javascript 注入(inject)安全解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53781966/

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