编写高质量代码:改善Python程序的91个建议
书链接:http://www.duokan.com/book/51989
编码有两件事,一件是处理数值,另一件是处理字符串;
读完该书之后,开启了很多处理事情的新方法,算是有些用的
更重要的是里面提到了很多Python安全的TIPS,例如:
EVAL注入问题,pickle反序列化安全问题 等等……
pickle存在安全性问题:
Python的文档清晰地表明它不提供安全性保证,因此对于一个从不可信的数据源接收的数据不要轻易进行反序列化。由于loads()可以接收字符串作为参数,这意味着精心设计的字符串给入侵提供了一种可能。在Pthon解释器中输入代码pickle.loads("cos\nsystem\n(S'dir'\ntR.")便可查看当前目录下所有文件。如果将dir替换为其他更具有破坏性的命令将会带来安全隐患。如果要进一步提高安全性,用户可以通过继承类pickle.Unpickler并重写find_class()方法来实现。
建议14:警惕eval()的安全漏洞 31