fix(scraping): corriger les 403 sur les images avec protection anti-hotlink

- Ajouter le header Referer (origin de l'image) dans ImageDownloader pour les téléchargements backend
- Ajouter referrerpolicy="no-referrer" sur les <img> de la modale de test pour les previews navigateur
This commit is contained in:
ext.jeremy.guillot@maxicoffee.domains
2026-03-16 00:09:01 +01:00
parent 01474c264b
commit 874003eb35
2 changed files with 14 additions and 1 deletions

View File

@@ -86,6 +86,7 @@
:src="imageUrl"
:alt="`Image ${index + 1}`"
class="w-full h-32 object-cover border border-gray-200 dark:border-gray-600"
referrerpolicy="no-referrer"
@error="handleImageError"
@load="handleImageLoad" />
<div class="absolute inset-0 bg-black bg-opacity-0 group-hover:bg-opacity-30 transition-opacity flex items-center justify-center">
@@ -278,6 +279,11 @@ const handleTest = async ({ configuration, testData }) => {
testResults.value = {};
try {
// Persister testSlug + testChapterNumber avant de lancer le test
if (isEditing.value) {
await contentSourceStore.updateSource(route.params.id, configuration);
}
// Préparer les données selon le format de l'API
const testConfiguration = {
baseUrl: configuration.baseUrl,

View File

@@ -20,7 +20,14 @@ readonly class ImageDownloader implements ImageDownloaderInterface
public function download(string $url, string $destination): void
{
$response = $this->httpClient->request('GET', $url);
$urlParts = parse_url($url);
$referer = ($urlParts['scheme'] ?? 'https') . '://' . ($urlParts['host'] ?? '');
$response = $this->httpClient->request('GET', $url, [
'headers' => [
'Referer' => $referer,
],
]);
$contentType = $response->getHeaders()['content-type'][0] ?? '';
if (!str_starts_with($contentType, 'image/')) {