简而言之,我的问题是,“如何验证哪些客户端消息来自我的代码,哪些来自黑客?”
我读过很多关于Javascript注入的文章,在StackOverflow上读了很多答案。不幸的是,总是给出某种“永远不信任客户端,始终验证请求”的答案。听起来不错,但我想不出如何把它应用到我的情况中。我试图关闭我的服务器端代码的所有客户端访问点,但我仍然有一个,我需要一些帮助保护它。以下是我的情况:
我知道这个代码有很多问题,但我已经修补了很多漏洞。通过在其他补丁中使用CORS策略,我使www.storage.com只接受来自www.main_site.com的请求。主要是,我看到的最后一个大漏洞,也是我现在想要解决的一个漏洞,是某个人使用Chrome或Firefox上的Dev工具插入JS来调用所有这些,并模拟一个真正的调用。如何在这里实现服务器端身份验证?我不介意有人调用第一个$.get,因为它只生成代码并返回它在数据库中的位置。我使用额外的测试目的。但是一旦他们把它叫做socket.emit,他们就可以随心所欲地做任何事情。我有哪些选项,也许请举例说明我如何在JavaScript或Python中实现您的建议(www.storage.com在Python中)。谢谢!
-编辑--我现在可以通过进入Chrome工具控制台并输入上面的代码来黑我自己的站点。我无法阻止其他人这样做,那么一些常用的验证技术是什么呢?
发布于 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只向前端提供有用的既要敏感又不敏感的预先处理数据。
发布于 2018-12-14 16:40:15
-编辑--我现在可以通过进入Chrome工具控制台并输入上面的代码来黑我自己的站点。
这就是残酷的事实..。你可以使它很难破解,但你不能使它不可能!
这对于网络应用来说是正确的,对于移动应用来说,解决方案是存在的,但是一旦超出了你的情况,我不会去挖掘它。
我无法阻止其他人这样做,那么一些常用的验证技术是什么呢?
您可以阅读有关Mobile安全技术的文章的本系列,以了解它们是如何实现和绕过的。这篇文章更多的是在移动应用程序的API环境中,但是其中提到的大多数技术也可以应用到web应用中。
https://stackoverflow.com/questions/53781966
复制相似问题