|
|
@@ -1684,6 +1684,7 @@ Celery是一个本身不提供队列服务,官方推荐使用RabbitMQ或Redis
|
|
|
pass
|
|
|
|
|
|
|
|
|
+ # 消息的生产者
|
|
|
send_email.delay('', [], [], '', '')
|
|
|
```
|
|
|
|
|
|
@@ -1700,7 +1701,7 @@ Celery是一个本身不提供队列服务,官方推荐使用RabbitMQ或Redis
|
|
|
beat_schedule={
|
|
|
'task1': {
|
|
|
'task': 'common.tasks.show_msg',
|
|
|
- 'schedule': crontab(),
|
|
|
+ 'schedule': crontab('*', '*', '*', '*', '*'),
|
|
|
'args': ('刘强东,奶茶妹妹喊你回家喝奶啦', )
|
|
|
},
|
|
|
},
|
|
|
@@ -1759,13 +1760,13 @@ CORS_ORIGIN_ALLOW_ALL = True
|
|
|
|
|
|
### 安全保护
|
|
|
|
|
|
-问题1:什么是跨站脚本攻击,如何防范?(对提交的内容进行消毒)
|
|
|
+问题1:什么是跨站脚本攻击(XSS),如何防范?(对提交的内容进行消毒)
|
|
|
|
|
|
-问题2:什么是跨站身份伪造,如何防范?(使用随机令牌)
|
|
|
+问题2:什么是跨站身份伪造(CSRF),如何防范?(使用随机令牌)
|
|
|
|
|
|
-问题3:什么是SQL注射攻击,如何防范?(不拼接SQL语句,避免使用单引号)
|
|
|
+问题3:什么是SQL注射攻击(SQL Injection),如何防范?(不拼接SQL语句,避免使用单引号)
|
|
|
|
|
|
-问题4:什么是点击劫持攻击,如何防范?(不允许`<iframe>`加载非同源站点内容)
|
|
|
+问题4:什么是点击劫持攻击(Click-hacking),如何防范?(不允许`<iframe>`加载非同源站点内容)
|
|
|
|
|
|
#### Django提供的安全措施
|
|
|
|
|
|
@@ -1834,21 +1835,6 @@ CSRF令牌和小工具
|
|
|
|
|
|
2. 加密和解密(对称加密和非对称加密)
|
|
|
|
|
|
- ```Shell
|
|
|
- pip install rsa
|
|
|
- ```
|
|
|
-
|
|
|
- ```Python
|
|
|
- >>> pub_key, pri_key = rsa.newkeys(1024)
|
|
|
- >>> message = 'hello, world!'
|
|
|
- >>> crypto = rsa.encrypt(message.encode(), pub_key)
|
|
|
- >>> crypto
|
|
|
- b'Ou{gH\xa9\xa8}O\xe3\x1d\x052|M\x9d9?\xdc\xd8\xecF\xd3v\x9b\xde\x8e\x12\xe6M\xebvx\x08\x08\x8b\xe8\x86~\xe4^)w\xf2\xef\x9e\x9fOg\x15Q\xb7\x7f\x1d\xcfV\xf1\r\xbe^+\x8a\xbf }\x10\x01\xa4U9b\x97\xf5\xe0\x90T\'\xd4(\x9b\x00\xa5\x92\x17\xad4\xb0\xb0"\xd4\x16\x94*s\xe1r\xb7L\xe2\x98\xb7\x7f\x03\xd9\xf2\t\xee*\xe6\x93\xe6\xe1o\xfd\x18\x83L\x0cfL\xff\xe4\xdd%\xf2\xc0/\xfb'
|
|
|
- >>> origin = rsa.decrypt(crypto, pri_key).decode()
|
|
|
- >>> origin
|
|
|
- 'hello, world!'
|
|
|
- ```
|
|
|
-
|
|
|
```Shell
|
|
|
pip install pycrypto
|
|
|
```
|
|
|
@@ -1938,7 +1924,7 @@ CSRF令牌和小工具
|
|
|
- 测试套件(测试集)- 组合了多个测试用例而构成的集合。
|
|
|
|
|
|
```Python
|
|
|
-class UtilTest(TestCase):
|
|
|
+class UtilTest(unittest.TestCase):
|
|
|
|
|
|
def setUp(self):
|
|
|
self.pattern = re.compile(r'\d{6}')
|
|
|
@@ -2340,7 +2326,7 @@ TOTAL 267 176 34%
|
|
|
|
|
|
1. 用ID生成器代替自增主键(性能更好、适用于分布式环境)。
|
|
|
|
|
|
- - 自定义ID生成器
|
|
|
+ - 自定义ID生成器 - snowflake
|
|
|
|
|
|
- UUID
|
|
|
|