我是后端新来的,以前从没和它合作过。
我想添加到我的应用身份验证系统:客户端请求服务器提供唯一的ID,服务器生成大约5-6个符号ID并返回给客户端。用户可以使用这个ID,这样其他人就可以通过这个ID找到他的设备。经过一些延迟(比如几个小时),服务器将删除唯一的ID,因此客户端必须请求另一个ID来继续使用服务器服务。
对于我的应用程序,这应该是舒适的方式-没有任何oauth系统。但是,如果有人想要更改客户端代码,以便同一个客户端向服务器发送数千个请求,以便为其创建唯一的ID,该怎么办?对于服务器的数据库来说,这听起来很不安全,它可以被同一个设备的假ID填充。
我的问题是-如果这个用户在拒绝此请求之前已经请求ID,那么是否有可能像服务器检查那样使创建ID的请求更安全?也许我可以检查一下客户端IP / MAC地址之类的东西?模拟问题的最佳实践是什么?
关于更详细的上下文,我使用Spring、Android和Retrofit。对不起,我不是说英语的人。
发布于 2022-11-01 14:24:38
基本上,您是在问服务器是否可以以一种能够正常工作的方式识别客户机的机器(总是或大多数情况下)。
答:不,没有办法。
您能得到的最好的是(假设的)客户端IP地址,您可以从Socket对象、HTTPRequest对象或其他任何东西中获得。但是,如果客户端通过代理或NAT服务器或Tor / Onion路由器连接,则IP地址将是该地址的IP地址。
那么解决方案是什么呢?
没有什么能阻止一切形式的虐待,但以下是一些可能会有所帮助的想法:
。
基于(观察到的)客户端IP地址的
https://stackoverflow.com/questions/74276152
复制相似问题