我是RESTAPI的新手,正在开发一个将用于iOS/Android/Web应用程序的API,但我不熟悉API发布后面临的威胁。我到处都能看到同样的提示:
- 使用oAuth 2允许事务
- 仅接收和发送加密的JSON Web令牌
- 使用SSL/TTL
我认为使用SSL/TLS和JWT应该足够安全地发送/接收数据,但即使这样,我也担心如果有人窃取凭据,可能会注入SQL。
我应该检查SQL注入字符串的请求吗(比如这个(?如果我要支持用户登录,那么使用oAuth而不是JWT会更有意义吗?
sql-i
-
使用预先准备好的语句将为您提供很多方法(进一步阅读(
-
考虑使用ORM层与数据库(例如:gorm(接口
安全原则
-
在上执行任何操作之前,始终验证用户输入
-
对于每个操作,如果你知道通用的选项集,选择允许列表方法与拒绝列表方法(即,如果字符串属于我的已知列表,我只允许它通过(
身份验证
- jwt只是一种令牌格式(类似于您的身份证(,您可以使用oauth作为底层authz(在允许您访问某些资源之前检查您的身份卡(——点击此处阅读更多信息
- 承载令牌(如jwt(应始终通过TLS/SSL发送,以防止入侵者访问明文jwt(rfc7523(
- 随着产品的成熟,您可能希望转移到一个模型,在该模型中,您可以开始分配存储在手机上的会话令牌,但这通常伴随着处理吊销的复杂性(例如:我何时/如何轮换会话令牌?(