Данные политики безопасности содержимого:изображение

#laravel #content-security-policy

#ларавель #контент-политика безопасности

Вопрос:

Я решил попробовать использовать contentSecurityPolicy, кажется, все работает нормально, но изображения перестали загружаться, я получаю эту ошибку

URL-адрес запроса: данные:изображение/jpeg;base64

Что мне нужно добавить в свой ContentSecurityPolicy.php файл, чтобы избежать этой ошибки?

Это то, что у меня есть сейчас

 lt;?php  namespace AppHttpMiddleware;  use Closure; use IlluminateHttpRequest;  class ContentSecurityPolicy {  public $resources = [  'default-src' =gt; [  "'self'",  "'unsafe-inline'",  'cdnjs.cloudflare.com',  'fonts.gstatic.com',  'code.jquery.com',  ],  ];   public function handle(Request $request, Closure $next)  {  $response = $next($request);   $contentSecurityPolicy = '';  foreach ($this-gt;resources as $key =gt; $values) {  $contentSecurityPolicy .= $key . ' ' . implode(' ', $values);  }   $response-gt;header("Content-Security-Policy", "default-src $contentSecurityPolicy");   return $response;  } }  

Ответ №1:

Он точно сообщил вам, какого типа заголовка в нем не хватает. Попробуйте добавить data: в свой массив. Но вы должны рассмотреть возможность использования этого реквизита только для img-src . Потому что разрешение data: сценариев и т. Д. Не является хорошей идеей при добавлении CSP.

 public $resources = [  'default-src' =gt; [  "'self'",  "data:",  "'unsafe-inline'",  'cdnjs.cloudflare.com',  'fonts.gstatic.com',  'code.jquery.com',  ],  ];  

Комментарии:

1. Я пытался сделать это так "img-src 'self' data:" , кажется, все работает

2. но теперь у меня другая проблема, я также загружаю видео с YouTube с помощью iframe, и теперь эта политика безопасности ругается на это Request URL: https://www.youtube.com/iframe_api

3. помог frame-src youtube.com www.youtube.com