如何判断HTTP请求来源的正确性

现在要做这样一个判断,用户下载了某个app(平台不限ios/android)后,在初次启动app时向服务器发起一个http请求,我想判断这个请求是从app发过来的而不是来自其他工具的恶意访问。因为想到http请求中带的参数是可能被截获,所以尽管服务器端通过请求参数的验证和user-agent等的验证,也不能完全确保请求来源的合法性。请教有没有高安全性的解决方案!谢谢!
喵喵时光机
浏览 454回答 2
2回答

神不在的星期二

这个问题可以进一步升级为:http的请求,如何不被拦截并伪造.因为web是不安全的,所以很难做到请求会被拦截.因此,我们假设请求一定会被拦截.所以也带来一个问题:如果请求所携带的参数一直不变,那么肯定请求就很容易被伪造了.因此,把思路转向:每次请求所携带的参数都不一样.很容易就能想到公钥私钥的解决方案.使用公钥对某一参数进行加密,然后到服务端进行解密.同时,为了让这一参数随时变化,很明显一个比较简单的参数就是时间了.在对时间进行加密后,服务端就可以解密出来,得到时间.然后时间进行验证.考虑到时间会有误差,所以服务端可以加一个误差值.这个方案的漏洞是:如果app被破解了,公钥和参数可以获取了之后,就可以认为伪造加密后的数据,进行请求.没有绝对的安全,只是把破解的难度加大而已.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript