Azure 存储是否允许路径遍历?
Does Azure storage allow path traversal?
安全方面,如果我从用户那里收到部分路径,我需要清理它们吗?
过度简化的示例(在 Python 中):
from azure.storage.blob import BlobServiceClient
client = BlobServiceClient.from_connection_string("<mypassword>")
container = client.get_container("mycontainer")
container.upload_blob(f"path/{input()}", b"data")
input()
是否可以包含../
从而导致路径遍历攻击?
不行,azure storage 不允许路径遍历。
当检测到路径有../
时,会抛出认证错误。
简而言之,如果路径看起来像这样path/path2/../aa.txt
,在客户端,这个路径将被用来生成令牌;在服务器端,它会自动从路径中删除../
,然后使用新路径(不包含../
)生成令牌。因此,客户端令牌在身份验证时与服务器端令牌不匹配。然后出现错误。
安全方面,如果我从用户那里收到部分路径,我需要清理它们吗?
过度简化的示例(在 Python 中):
from azure.storage.blob import BlobServiceClient
client = BlobServiceClient.from_connection_string("<mypassword>")
container = client.get_container("mycontainer")
container.upload_blob(f"path/{input()}", b"data")
input()
是否可以包含../
从而导致路径遍历攻击?
不行,azure storage 不允许路径遍历。
当检测到路径有../
时,会抛出认证错误。
简而言之,如果路径看起来像这样path/path2/../aa.txt
,在客户端,这个路径将被用来生成令牌;在服务器端,它会自动从路径中删除../
,然后使用新路径(不包含../
)生成令牌。因此,客户端令牌在身份验证时与服务器端令牌不匹配。然后出现错误。