老男孩教育专注IT教育10余年,只培养IT技术精英

全国免费咨询电话(渠道合作):400-609-2893

Python常见的5个安全漏洞及修复方法!老男孩Python开发课程

老男孩IT教育

常见问题

2022年7月12日 09:35

时代在发展科技也在进步,编写安全的代码也会逐渐困难,当你学习一门编程语言、一个模块或框架时,往往会学习其使用方法,在考虑安全性时,你需要考虑如何避免代码被滥用,那Python中常见的安全漏洞及修复方法你都知道哪些?请看下文:

       时代在发展科技也在进步,编写安全的代码也会逐渐困难,当你学习一门编程语言、一个模块或框架时,往往会学习其使用方法,在考虑安全性时,你需要考虑如何避免代码被滥用,那Python中常见的安全漏洞及修复方法你都知道哪些?请看下文:

Python开发课程

       1、输入注入

       注入攻击影响广泛且很常见,注入有很多种类,它们影响所有的语言、框架和环境,SQL注入是直接编写SQL查询(而非使用ORM) 时将字符串与变量混合。

       修复方法:如果你使用了 Web 框架,可以用附带的实用程序对输入进行清理,除非有充分的理由,否则不要手动构建 SQL 查询,大多数 ORM 都有内置的清理方法。对于 shell,可以使用 shlex 模块正确地转义输入。

       2、解析XML

       如果你的应用程序加载并解析XML文件,可能您正在使用一个XML标准库模块。有一些针对XML的常见攻击。大多数为DoS风格(旨破坏系统而不是盗取数据)。这些攻击很常见,特别是在解析外部(即不可信任的)XML文件时。

       修复方法:直接用defusedxml(链接:https://pypi.org/project/defusedxml/)替换标准库模块。它增加了针对这类攻击的安全防护。

       3、Assert语句

       不要使用assert语句来防止用户访问特定代码段。

       修复方法:仅在单元测试中使用assert语句。

       4、计时攻击

       计时攻击本质上是一种通过计算比较提供值所需时间来暴露行为和算法的方式。计时攻击需要精确性,所以通常不能用于高延迟的远程网络。但是,如果你的应用程序有提示输入密码的命令行,攻击者就可以编写一个简单的脚本来计算将其值与实际密码进行比较所需的时间。

       修复方法:使用在 Python 3.5 中引入的 secrets.compare_digest 来比较密码和其他私密值。

       5、感染site-packages或导入路径

       Python的导入系统非常灵活。当你为测试程序编写猴子补丁,或者重载核心函数时,你会感觉非常方便。但这也是Python最大的安全漏洞之一。将第三方包安装到site-packages中,无论是在虚拟环境中还是在全局site-packages中,你都将暴露在安全风险中。

       修复方法:可以利用PyUp.io这个网站提供的工具检查你的第三方包。使用虚拟环境,确保您的全局site-packages尽可能干净。检查包签名。

       老男孩教育是Python培训领域的专家,2012年就开展了Python培训,是行业较早的Python培训机构,积累了大量的Python培训教学经验,并能全局把控企业用人指标,科学的制定Python教学课程体系,满足5-8年职业生涯需求,让学员轻松拿下高薪职位!

   推荐阅读:

       Python爬虫是什么?它能做什么?老男孩Python培训

       有必要报培训班学习Python语言吗?老男孩Python线上直播班

       Python就业前景和工资待遇如何?老男孩python开发

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。