有用户反馈,存在非法用户盗用她们的 token 在空间上传 svg,xml,html 等垃圾文件,注入广告,或者散播涉黄视频等资源,严重影响了用户业务的正常运营,针对此类问题,这边总结了如下处理方案。
通过上传策略限制上传
a.上传策略中 scope 指定 key 值,只允许用户上传指定 key 的文件
参数说明:
python 示例:
from qiniu import Auth, put_file access_key ="" secret_key = "" # 构建鉴权对象 q = Auth(access_key, secret_key) # 要上传的空间 bucket_name = '2' key = 'key' #获取token的方法指定key token = q.upload_token(bucket_name, key, 3600) #put方法必须指定相同key才能上传 ret, info = put_file(token, key, 'localfilepath') print ret b.上传策略中 insertOnly 指定为 1 或者指定 forceInsertOnly 为 true,只允许用户上传指定 key ,并且不允许修改
参数说明:
| 字段名 | 说明 |
|---|---|
| insertOnly | 默认为0,指定为 1 时,上传指定 key 的文件,并且不允许修改,即上传相同 key ,不同 hash,返回 614 “file exists”,上传相同 key,相同 hash 仍旧返回 200 |
| forceInsertOnly | 默认为 False ,指定为 True 时,上传指定 key 的文件,并且不允许修改,只允许上传一次,即上传相同 key,相同 hash 仍旧返回 614 “file exists”, |
python 示例:
from qiniu import Auth, put_file access_key ="" secret_key = "" # 构建鉴权对象 q = Auth(access_key, secret_key) # 要上传的空间 bucket_name = 'bucket' key = 'key' #insertOnly 指定为 1 policy = {"insertOnly":1} #获取token的方法指定key token = q.upload_token(bucket_name, key, 3600, policy) """ #forceInsertOnly 为 true policy = {'forceInsertOnly':True} # 注意 forceInsertOnly是新增字段,这时候生成token的方法中 strict_policy 这个参数设置成False才能生效 token = q.upload_token(bucket_name, key, 3600, policy, strict_policy=False) """ #put方法必须指定相同key才能上传 ret, info = put_file(token, key, 'localfilepath') print ret c.上传策略中指定 mimetype ,限制上传文件类型
参数说明:
python 示例:
from qiniu import Auth, put_file access_key ="" secret_key = "" # 构建鉴权对象 q = Auth(access_key, secret_key) # 要上传的空间 bucket_name = 'bucket' key = 'key' #限制mimeLimit policy = { "insertOnly":1, "mimeLimit":"image/*" #只允许上传图片文件 } #获取token的方法指定key token = q.upload_token(bucket_name, key, 3600, policy) #put方法必须指定相同key才能上传 ret, info = put_file(token, key, 'localfilepath') print ret 文档反馈 (如有产品使用问题,请 提交工单)