假设我正在为一个展览制作网络应用程序(例如平均堆栈),我想确保我的服务器只接受来自用户的请求真的在场内,我该怎么办?什么是常见攻击?防止假冒用户的攻击(真正的用户是那些真正处于特定位置的用户)
回答
将您的场地位置保存在您的应用程序或服务器端。然后尝试通过获取他们的位置大约100毫秒或您选择的半径来跟踪用户。
添加CoreLocation.framework到BuildPhases - >链接二进制与图书馆(不再需要为7.2.1的XCode的)
进口CoreLocation到你的类 - 可能ViewController.swift
添加CLLocationManagerDelegate上您的课声明
添加NSLocationWhenInUseUsageDescription和NSLocationAlwaysUsageDescription到PList INIT位置经理:
locationManager = CLLocationManager()
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestAlwaysAuthorization()
locationManager.startUpdatingLocation()
get User Location By:
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
var locValue:CLLocationCoordinate2D = manager.location.coordinate
print("locations = \(locValue.latitude) \(locValue.longitude)")
}
提供假的位置信息将非常容易。 –
简短和通用的答案是你不能真的这样做,但请继续阅读。
您需要回答的问题与您想要保护您的应用的方式不符,您试图减轻的威胁是什么。
您可以在移动应用程序中构建任何保护(例如其他答案中的保护),但请记住客户端完全由用户控制。例如,用户可能伪造应用程序的位置坐标(请参阅Pokemon Go),在仿真器或实际设备中执行操作非常简单。或者更容易,用户可以从任意来源发出请求,而不是您的应用程序。服务器请求必须包含用户的位置 - 但用户可以发送任何他想要的内容。总而言之,客户端上的任何内容都完全由用户控制。
因此,这导致服务器端保护作为实际安全解决方案(合理难以规避的解决方案)的唯一方式。如果客户端告诉服务器,服务器知道客户端的物理位置的唯一来源 - 但我们上面已经看到这是不可靠的。
但是,有一件事客户端不能合理假冒(至少不容易),那就是客户端IP地址。因此,为防止用户不在场内使用您的服务,您可以做的唯一事情就是将其锁定在网络级别上,例如,您的API服务器应仅可从IP范围场地提供(大概是本地地址范围,或者如果您的API在云中,则是公共IP地址或场地的范围)。
- 1. Identityserver3 - 用户假冒
- 2. 真正的用户界面不同于设计的
- 3. Grails用户域类和缓存真正
- 4. 用户IIS7使用时识别冒充=真和一个特定的用户没有指定
- 5. 基于连续的用户位置计算真北
- 6. 防止用户点击一个特定的按钮时,正在执行
- 7. 如何防止登录系统的用户枚举攻击?
- 8. 关于Sharepoint用户的真正基本问题
- 9. 防止用户点击
- 10. 假冒用户的令牌错误
- 11. 防止用户
- 12. 真正返回假
- 13. 禁用WordPress的特定用户,并防止该用户不使用插件
- 14. 在Laravel验证用户时防止暴力攻击
- 15. 制作的createElement返回功能/真正的假冒标签
- 16. 如何防止用户登录用于模拟的帐户?
- 17. 在php脚本中掩盖真正的用户名,密码,dbname
- 18. Java垃圾收集“真正”的时间比“用户” +“系统”
- 19. 仿真用户活动
- 20. 评价用户ID为真
- 21. .net引用特定版本真或假?
- 22. 如何将Facebook虚假用户标识转换为真实用户标识
- 23. 在Windows上假冒用户为LocalSystem
- 24. Laravel Cashier假冒用户订购测试
- 25. 有多少个IE6用户是真实用户?
- 26. 错误:{“解析”:真正的“}防止启用AngularJs提交按钮
- 27. C#PrincipalServerdownException即使我是真实用户
- 28. ansible sudo用户不是真sudo
- 29. 你如何防止特定CSRF攻击
- 30. Membership.DeleteUser(用户名,真实)的角色
只允许来自该收入的WiFi网络的连接?简单的IP过滤器会做。 – madhead