Python安全编码指南

时间:2015-08-28 20:06:11

标签: python security

查看CERT安全标准(例如:https://www.securecoding.cert.org),有一些特定的标准,包括C,C ++,Java,甚至是Perl而不是Python的好坏代码的好例子。是否有任何Python特定标准是指导方针,最好提供示例?

http://www.pythonsecurity.org/似乎是Python本身的重点安全问题,也是构建替代Python二进制文件以解决这些问题的重点。一个高尚但不是最近活跃的原因。我正在寻找能够指导开发人员不做什么和做什么的东西。

6 个答案:

答案 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 PyLinterFlake8PyCharm没有插件(免费增值,完全免费使用)。

如果你想拥有一些“创造性自由”,我个人会推荐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正在“开发中”。