@@ -1684,6 +1684,7 @@ Celery是一个本身不提供队列服务,官方推荐使用RabbitMQ或Redis
1684
1684
pass
1685
1685
1686
1686
1687
+ # 消息的生产者
1687
1688
send_email.delay(' ' , [], [], ' ' , ' ' )
1688
1689
```
1689
1690
@@ -1700,7 +1701,7 @@ Celery是一个本身不提供队列服务,官方推荐使用RabbitMQ或Redis
1700
1701
beat_schedule = {
1701
1702
' task1' : {
1702
1703
' task' : ' common.tasks.show_msg' ,
1703
- ' schedule' : crontab(),
1704
+ ' schedule' : crontab(' * ' , ' * ' , ' * ' , ' * ' , ' * ' ),
1704
1705
' args' : (' 刘强东,奶茶妹妹喊你回家喝奶啦' , )
1705
1706
},
1706
1707
},
@@ -1759,13 +1760,13 @@ CORS_ORIGIN_ALLOW_ALL = True
1759
1760
1760
1761
### 安全保护
1761
1762
1762
- 问题1:什么是跨站脚本攻击,如何防范?(对提交的内容进行消毒)
1763
+ 问题1:什么是跨站脚本攻击(XSS) ,如何防范?(对提交的内容进行消毒)
1763
1764
1764
- 问题2:什么是跨站身份伪造,如何防范?(使用随机令牌)
1765
+ 问题2:什么是跨站身份伪造(CSRF) ,如何防范?(使用随机令牌)
1765
1766
1766
- 问题3:什么是SQL注射攻击,如何防范?(不拼接SQL语句,避免使用单引号)
1767
+ 问题3:什么是SQL注射攻击(SQL Injection) ,如何防范?(不拼接SQL语句,避免使用单引号)
1767
1768
1768
- 问题4:什么是点击劫持攻击,如何防范?(不允许` <iframe> ` 加载非同源站点内容)
1769
+ 问题4:什么是点击劫持攻击(Click-hacking) ,如何防范?(不允许` <iframe> ` 加载非同源站点内容)
1769
1770
1770
1771
#### Django提供的安全措施
1771
1772
@@ -1834,21 +1835,6 @@ CSRF令牌和小工具
1834
1835
1835
1836
2 . 加密和解密(对称加密和非对称加密)
1836
1837
1837
- ``` Shell
1838
- pip install rsa
1839
- ```
1840
-
1841
- ``` Python
1842
- >> > pub_key, pri_key = rsa.newkeys(1024 )
1843
- >> > message = ' hello, world!'
1844
- >> > crypto = rsa.encrypt(message.encode(), pub_key)
1845
- >> > crypto
1846
- b ' Ou{gH\xa9\xa8 }O\xe3\x1d\x05 2|M\x9d 9?\xdc\xd8\xec F\xd3 v\x9b\xde\x8e\x12\xe6 M\xeb vx\x08\x08\x8b\xe8\x86 ~\xe4 ^)w\xf2\xef\x9e\x9f Og\x15 Q\xb7\x7f\x1d\xcf V\xf1\r\xbe ^+\x8a\xbf }\x10\x01\xa4 U9b\x97\xf5\xe0\x90 T\'\xd4 (\x9b\x00\xa5\x92\x17\xad 4\xb0\xb0 "\xd4\x16\x94 *s\xe1 r\xb7 L\xe2\x98\xb7\x7f\x03\xd9\xf2\t\xee *\xe6\x93\xe6\xe1 o\xfd\x18\x83 L\x0c fL\xff\xe4\xdd %\xf2\xc0 /\xfb '
1847
- >> > origin = rsa.decrypt(crypto, pri_key).decode()
1848
- >> > origin
1849
- ' hello, world!'
1850
- ```
1851
-
1852
1838
``` Shell
1853
1839
pip install pycrypto
1854
1840
```
@@ -1938,7 +1924,7 @@ CSRF令牌和小工具
1938
1924
- 测试套件(测试集)- 组合了多个测试用例而构成的集合。
1939
1925
1940
1926
``` Python
1941
- class UtilTest (TestCase ):
1927
+ class UtilTest (unittest . TestCase ):
1942
1928
1943
1929
def setUp (self ):
1944
1930
self .pattern = re.compile(r ' \d {6} ' )
@@ -2340,7 +2326,7 @@ TOTAL 267 176 34%
2340
2326
2341
2327
1. 用ID生成器代替自增主键(性能更好、适用于分布式环境)。
2342
2328
2343
- - 自定义ID生成器
2329
+ - 自定义ID生成器 - snowflake
2344
2330
2345
2331
- UUID
2346
2332
0 commit comments