
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
Python编程开发语言的学习是目前大多数软件开发程序员都在学习的一种编程开发语言,而本文我们就通过案例分析来简单了解一下,Python编程开发安全陷阱分享。
1.被优化掉的断言
Python支持以优化的方式执行代码。这使代码运行得更快,内存用得更少。当程序被大规模使用,或者可用的资源很少时,这种方法尤其有效。一些预打包的Python程序提供了优化的字节码。
然而,当代码被优化时,所有的assert语句都会被忽略。开发者有时会使用它们来判断代码中的某些条件。例如,如果使用断言来作身份验证检查,则可能导致安全绕过。
2.MakeDirs权限
os.makdirs函数可以在操作系统中创建一个或多个文件夹。它的二个参数mode用于指定创建的文件夹的默认权限。
3.绝对路径拼接
os.path.join(path,*paths)函数用于将多个文件路径连接成一个组合的路径。一个参数通常包含了基础路径,而之后的每个参数都被当做组件拼接到基础路径后。
然而,这个函数有一个少有人知的特性。如果拼接的某个路径以/开头,那么包括基础路径在内的所有前缀路径都将被删除,该路径将被视为绝对路径。
4.任意的临时文件
tempfile.NamedTemporaryFile函数用于创建具有特定名称的临时文件。但是,prefix(前缀)和suffix(后缀)参数很容易受到路径遍历攻击(Issue35278)。如果攻击者控制了这些参数之一,他就可以在文件系统中的任意位置创建出一个临时文件。
5.扩展的ZipSlip
在Web应用中,通常需要解压上传后的压缩文件。在Python中,很多人都知道TarFile.extractall与TarFile.extract函数容易受到ZipSlip攻击。攻击者通过篡改压缩包中的文件名,使其包含路径遍历(../)字符,从而发起攻击。
6.不完整的正则表达式匹配
正则表达式(regex)是大多数Web程序不可或缺的一部分。我们经常能看到它被自定义的Web应用防火墙(WAF,WebApplicationFirewalls)用来作输入验证,例如检测恶意字符串。
7.Unicode清洗器绕过
Unicode支持用多种形式来表示字符,并将这些字符映射到码点。在Unicode标准中,不同的Unicode字符有四种归一化方案。程序可以使用这些归一化方法,以独立于人类语言的标准方式来存储数据,例如用户名。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。