微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何防止 SQL 注入并提高 REST API 的安全性?

如何解决如何防止 SQL 注入并提高 REST API 的安全性?

我是 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

  1. 使用准备好的语句会让你受益匪浅 (further reading)

  2. 考虑使用 ORM 层与您的数据库交互(例如:gorm

安全原则

  1. 在对用户输入执行任何操作之前始终对其进行验证

  2. 对于每个操作,如果您知道通用选项集,请选择允许列表方法与拒绝列表方法(即,我只允许一个字符串通过,如果它属于我的已知列表)

授权

  1. jwt 只是一种令牌格式(类似于您的身份证),您可以将 oauth 用于底层 authz(在授予您访问某些资源的权限之前检查您的身份证)--阅读更多 here立>
  2. 承载令牌(如 jwt)应始终通过 TLS/SSL 发送,以防止入侵者访问明文 jwt (rfc7523)
  3. 随着产品的成熟,您可能希望转移到开始分配存储在手机上的会话令牌的模型,但这通常伴随着处理撤销的复杂性(例如:何时/如何轮换会话令牌?)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。