首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript注入安全解决方案

Javascript注入安全解决方案
EN

Stack Overflow用户
提问于 2018-12-14 14:50:22
回答 2查看 164关注 0票数 3

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

我读过很多关于Javascript注入的文章,在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请求,请求它生成一个密钥代码,将密钥放在共享数据库中,然后告诉我密钥代码在db中的位置。
  • 然后,客户端JS向main_site.com服务器发出一个main_site.com请求,服务器搜索数据库并找到密钥,然后将其返回给客户端。
  • 然后,客户端使用查询和密钥代码向www.storage.com发出GET请求。main_site.com客户端中的代码如下所示: $.get("代码“,函数(位置)“{ socket.emit("get_code”),位置,函数(代码){$.get){ $.get("Stuff?input=“+input+”&code=+代码,函数(响应)“{//在这里对响应}做任何事情)}

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

-编辑--我现在可以通过进入Chrome工具控制台并输入上面的代码来黑我自己的站点。我无法阻止其他人这样做,那么一些常用的验证技术是什么呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-14 15:43:45

有两种情况:

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

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

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

您希望依靠来自storage.com的数据执行自动化任务

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

然后,main_site.com只向前端提供有用的既要敏感又不敏感的预先处理数据。

票数 2
EN

Stack Overflow用户

发布于 2018-12-14 16:40:15

-编辑--我现在可以通过进入Chrome工具控制台并输入上面的代码来黑我自己的站点。

这就是残酷的事实..。你可以使它很难破解,但你不能使它不可能!

这对于网络应用来说是正确的,对于移动应用来说,解决方案是存在的,但是一旦超出了你的情况,我不会去挖掘它。

我无法阻止其他人这样做,那么一些常用的验证技术是什么呢?

您可以阅读有关Mobile安全技术的文章的本系列,以了解它们是如何实现和绕过的。这篇文章更多的是在移动应用程序的API环境中,但是其中提到的大多数技术也可以应用到web应用中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53781966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档