繁体   English   中英

不验证此Web服务中的用户输入会有什么风险?

[英]What are the risks of not validating user input in this web service?

我正在查看一个数据导出Web服务,该服务:

  1. 将文件名作为输入(仅是名称,而不是完整路径)
  2. 使用目录字符串常量连接文件的完整路径
  3. 压缩文件
  4. 将网址返回到位于网络可访问目录中的输出zip文件

如果未对输入文件名进行任何验证(例如,该文件是否存在 ),那么Web服务可能会对恶意用户造成哪些潜在风险/漏洞?

假设您的directory字符串常量为"/tmp/files"

攻击者可以提供"../../etc/passwd"

>>> import os
>>> os.path.abspath(directory + "../../etc/passwd")
'/etc/passwd'

您至少要将输入分解为基本名称

>>> os.path.join("/tmp/files", os.path.basename("../../etc/passwd")
/tmp/files/passwd

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM