安全开发须知

说明:本文只介绍与Nebula相关的安全开发内容。


密码与帐号

例如:

  • 邮箱帐号
  • OSS连接帐号

这种帐号一般可以在公网上使用,一旦泄漏会造成比较严重的安全问题。

使用建议:这些帐号必须保存在配置服务中,代码中可以通过下面方法来获取:

var smtpConfig = Settings.GetSetting<SmtpConfig>("邮箱参数名称");



数据库连接与帐号

这类帐号也必须在配置服务中注册。

甚至Nebula提供的很多方法只接受“连接名称”。

具体可参考:数据库连接



用户登录

接受用户名和密码的WebApi接口,要符合以下要求:

  • 仅支持 POST 方式调用
  • Acton方法上标记 [LoginAction]
  • 对于多次密码错误,要能锁定帐号



SQL查询

开发要求:

  • 尽量使用参数化SQL
  • 尽量使用强类型数据,例如:int, DateTime 类型的数据不要定义成 string



数据加密

开发要求:

  • 密钥不要写死在代码中
  • 尽量使用 ClownFish 提供的加密或者HASH方法
  • 用户登录密码不要明文保存,只保存HASH值即可
  • X509证书,以【独立配置文件】方式保存在配置服务中