Configurez une liste d'autorisation ou une liste de blocage basée sur le champ Referer et définissez si les requêtes avec un Referer vide sont autorisées pour un bucket Object Storage Service (OSS). Cette configuration permet d'éviter tout accès non autorisé aux ressources du bucket et de prévenir des frais de trafic imprévus.
Notes d'utilisation
Avant de configurer la protection contre le vol de lien, assurez-vous de bien comprendre cette fonctionnalité. Pour plus d'informations, consultez la rubrique Protection contre le vol de lien.
Cette rubrique utilise l'endpoint public de la région Chine (Hangzhou). Pour accéder à OSS depuis d'autres services Alibaba Cloud situés dans la même région, utilisez un endpoint interne. Pour obtenir la liste des régions et des endpoints pris en charge, consultez la rubrique Régions et endpoints.
Dans cette rubrique, une instance OSSClient est créée à l'aide d'un endpoint OSS. Si vous souhaitez créer une instance OSSClient en utilisant un nom de domaine personnalisé ou le Security Token Service (STS), consultez la rubrique Initialiser le SDK OSS pour Node.js.
Pour configurer la protection contre le vol de lien, vous devez disposer de l'autorisation
oss:PutBucketReferer. Pour consulter les configurations de protection contre le vol de lien, vous devez disposer de l'autorisationoss:GetBucketReferer. Pour plus d'informations, consultez la rubrique Accorder une politique personnalisée.
Configurer la protection contre le vol de lien pour un bucket
L'exemple de code suivant montre comment configurer la protection contre le vol de lien pour un bucket :
const OSS = require('ali-oss')
const client = new OSS({
// Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou.
region: 'yourregion',
// Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Specify the name of the bucket.
bucket: 'examplebucket'
});
async function putBucketReferer () {
try {
const result = await client.putBucketReferer(client.options.bucket, true, [
'http://www.aliyun.com',
'https://www.aliyun.com'
]);
console.log(result);
} catch (e) {
console.log(e);
}
}
putBucketReferer();
Consulter les configurations de protection contre le vol de lien d'un bucket
L'exemple de code suivant montre comment consulter les configurations de protection contre le vol de lien d'un bucket :
const OSS = require('ali-oss')
const client = new OSS({
// Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou.
region: 'yourregion',
// Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Specify the name of the bucket.
bucket: 'yourbucketname'
});
async function getBucketReferer () {
try {
const result = await client.getBucketReferer('bucket-name');
console.log(result);
} catch (e) {
console.log(e);
}
}
getBucketReferer();
Supprimer les configurations de protection contre le vol de lien d'un bucket
L'exemple de code suivant montre comment supprimer les configurations de protection contre le vol de lien d'un bucket :
const OSS = require('ali-oss')
const client = new OSS({
// Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou.
region: 'yourregion',
// Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Specify the name of the bucket.
bucket: 'yourbucketname'
});
async function deleteBucketReferer () {
try {
const result = await client.deleteBucketReferer('bucket-name');
console.log(result);
} catch (e) {
console.log(e);
}
}
deleteBucketReferer();
Références
Pour consulter l'exemple de code complet relatif à la protection contre le vol de lien, rendez-vous sur GitHub.
Pour plus d'informations sur l'opération API permettant de configurer la protection contre le vol de lien pour un bucket, consultez la rubrique PutBucketReferer.
Pour plus d'informations sur l'opération API permettant de consulter les configurations de protection contre le vol de lien d'un bucket, consultez la rubrique GetBucketReferer.