如何防止SQL注入并提高RESTAPI的安全性



我是RESTAPI的新手,正在开发一个将用于iOS/Android/Web应用程序的API,但我不熟悉API发布后面临的威胁。我到处都能看到同样的提示:

  • 使用oAuth 2允许事务
  • 仅接收和发送加密的JSON Web令牌
  • 使用SSL/TTL

我认为使用SSL/TLS和JWT应该足够安全地发送/接收数据,但即使这样,我也担心如果有人窃取凭据,可能会注入SQL。

我应该检查SQL注入字符串的请求吗(比如这个(?如果我要支持用户登录,那么使用oAuth而不是JWT会更有意义吗?

sql-i

  1. 使用预先准备好的语句将为您提供很多方法(进一步阅读(

  2. 考虑使用ORM层与数据库(例如:gorm(接口

安全原则

  1. 在上执行任何操作之前,始终验证用户输入

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

身份验证

  1. jwt只是一种令牌格式(类似于您的身份证(,您可以使用oauth作为底层authz(在允许您访问某些资源之前检查您的身份卡(——点击此处阅读更多信息
  2. 承载令牌(如jwt(应始终通过TLS/SSL发送,以防止入侵者访问明文jwt(rfc7523(
  3. 随着产品的成熟,您可能希望转移到一个模型,在该模型中,您可以开始分配存储在手机上的会话令牌,但这通常伴随着处理吊销的复杂性(例如:我何时/如何轮换会话令牌?(

最新更新