查看CERT安全标准(例如:https://www.securecoding.cert.org),有一些特定的标准,包括C,C ++,Java,甚至是Perl而不是Python的好坏代码的好例子。是否有任何Python特定标准是指导方针,最好提供示例?
http://www.pythonsecurity.org/似乎是Python本身的重点安全问题,也是构建替代Python二进制文件以解决这些问题的重点。一个高尚但不是最近活跃的原因。我正在寻找能够指导开发人员不做什么和做什么的东西。
答案 0 :(得分:6)
看到很多人都在推荐格式指南(PEP8),我有一个实际上是为了安全。
OpenStack中有一个项目(非常大的基于python的平台),名为Bandit。它是一种安全棉绒工具。
https://github.com/openstack/bandit
您可以针对自己的代码运行此工具,或者如果您希望学习安全python编码的内容,请查看示例目录。
答案 1 :(得分:3)
查看安全编码标准的一个地方是
https://vulncat.fortify.com/en
您列出了影响安全性的编码错误。它包含许多语言,Python就是其中之一。
我一直在寻找Python的学术/免费安全编码标准。我还没有找到一个好的。我认为SEI CERT应该加强并制定这样的标准。根据他们最新的安全编码网络研讨会,他们正在考虑这种可能性。
答案 2 :(得分:1)
我建议使用带有PEP8代码linter的文本编辑器,或尝试自己学习PEP8指南。 PEP8列出了Python程序员的样式建议,并且非常全面,然后被插入到插件中或直接用于编辑器中,以确保代码符合这些样式指南。
Python很棒,因为有很多可用的代码链接,那些推荐基于PEP8的正确样式。
很好的例子包括Sublime Text PyLinter或Flake8或PyCharm没有插件(免费增值,完全免费使用)。
如果你想拥有一些“创造性自由”,我个人会推荐Flake8或PyCharm而不是PyLinter,因为PyLinter非常严格。
答案 3 :(得分:1)
I posted this in another thread,但我们最近发布了一个名为DevSkim for Visual Studio,VS Code和Sublime Text的安全linter。它针对多种语言,专注于发现安全漏洞。
答案 4 :(得分:0)
您可以在我的blogpost中参考python中的编码指南。您需要遵循PEP8编码指南。 Autopep8是一种自动格式化Python代码以符合PEP 8样式指南的工具。要运行autopep8:
autopep8 TARGET.py
答案 5 :(得分:0)
CERT正在开发Python安全编码标准-但是多年来的努力似乎都没有。
https://wiki.sei.cmu.edu/confluence/display/seccode
一些CERT人士在演示中指出,Python安全编码v1.0正在“开发中”。