安全开发须知
说明:本文只介绍与Nebula相关的安全开发内容。
密码与帐号
例如:
- 邮箱帐号
- OSS连接帐号
这种帐号一般可以在公网上使用,一旦泄漏会造成比较严重的安全问题。
使用建议:这些帐号必须保存在配置服务中,代码中可以通过下面方法来获取:
var smtpConfig = Settings.GetSetting<SmtpConfig>("邮箱参数名称");
数据库连接与帐号
这类帐号也必须在配置服务中注册。
甚至Nebula提供的很多方法只接受“连接名称”。
具体可参考:数据库连接
用户登录
接受用户名和密码的WebApi接口,要符合以下要求:
- 仅支持 POST 方式调用
- Acton方法上标记 [LoginAction]
- 对于多次密码错误,要能锁定帐号
SQL查询
开发要求:
- 尽量使用参数化SQL
- 尽量使用强类型数据,例如:int, DateTime 类型的数据不要定义成 string
数据加密
开发要求:
- 密钥不要写死在代码中
- 尽量使用 ClownFish 提供的加密或者HASH方法
- 用户登录密码不要明文保存,只保存HASH值即可
- X509证书,以【独立配置文件】方式保存在配置服务中