从安全角度来看,如果我从用户那里收到部分路径,我需要对它们进行消毒吗?
过度简化的例子(在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存储不允许路径遍历。
当它检测到路径具有../
时,它将抛出身份验证错误。
简而言之,如果路径看起来像这个path/path2/../aa.txt
,那么在客户端,这个路径将用于生成令牌;在服务器端,它将自动从路径中删除../
,然后使用新路径(不包含../
(生成令牌。因此,在认证时客户端侧令牌与服务器侧令牌不匹配。然后出现错误。