问题记录.md 1.9 KB

101映射域名 dmap.apps.chinadci.com

Web安全

1 接口权限控制

swagger

需求:api需要授权

1.确定当前使用openapi2版本 2.了解简单YAML使用方式,文档使用YAML格式 3.声明Swagger,传入配置template(json或者yaml)

Swagger(app, config=swagger_config,template=SWAGGER_TEMPLATE)

2 用户密码加密

pipy github 使用gmssl demo

用户密码加密不可逆,兼容国产化,使用sm3算法,采用gmssl开源组件

封装好的类使用如下:

from app.models import SM3
password = SM3.encode('test')

3 通过网络传输的敏感信息要加密

使用sm2,通过gmssl工具生成sm2的公钥、私钥。 教程

1.生成sm2公钥、私钥 privatekey使用的pem是zhou@123

2. 使用公钥加密,私钥解密 前端使用sm-crypto,用户与python-gmssl互通 npm_sm-crypto

使用AES对称加密敏感信息,前端加密,后端解密。偏移量iv、加密密钥key与前端保持一致,保证解密正确。封装在models.py中。

依赖组件:

demo

from app.models import  AESHelper

encryption=AESHelper.encode('test_data')
result=AESHelper.decode(encryption)

4 使用验证码,防止恶意破解密码、刷票、论坛灌水、刷页

验证码又叫CAPTCHA

验证码基础知识 使用python图像处理标准库 pillow