问题描述
我是 REST API 的新手,正在开发将用于 iOS/Android/Web 应用程序的 API,但我不熟悉 API 发布后面临的威胁类型。 我到处都看到这些相同的提示:
- 使用 oAuth 2 允许交易,
- 仅接收和发送加密的 JSON 网络令牌,
- 使用 SSL/TTL。
我认为使用 SSL/TLS 和 JWT 应该足够安全地发送/接收数据,但即便如此,如果有人窃取凭据,我担心 sql 注入的可能性。
我应该检查 sql 注入字符串 (such as this one) 的请求吗? 如果我要支持用户登录,使用 oAuth 而不是 JWT 会更有意义吗?
解决方法
sql-i
-
使用准备好的语句会让你受益匪浅 (further reading)
-
考虑使用 ORM 层与您的数据库交互(例如:gorm)
安全原则
-
在对用户输入执行任何操作之前始终对其进行验证
-
对于每个操作,如果您知道通用选项集,请选择允许列表方法与拒绝列表方法(即,我只允许一个字符串通过,如果它属于我的已知列表)
授权