Загрузка...

Problem with Content Security Policy

Thread in Node.js created by thnDncr1337 Nov 20, 2023. 225 views

  1. thnDncr1337
    thnDncr1337 Topic starter Nov 20, 2023 Banned 49 Apr 23, 2021
    Вообщем, мне нужно сделать GET запрос на сторонний сайт, но консоль выдает ошибку.
    Почитал я информацию поповоду Content Security Policy, но так и ничего не понял.
    Код запроса
    Code
    if (this.asset.description.marketable == 1) {
    fetch(`https://prices.csgotrader.app/latest/csmoney.json`)
    .then((response) => response.json())
    .then((response) => {
    console.log(response);
    })
    }
    manifest.json
    Code

    "content_security_policy": {
    "content_security_policy": "script-src '*' object-src '*'"
    },
    Ошибка, которую выдает консоль браузера:
    Code
    Refused to connect to 'https://prices.csgotrader.app/latest/csmoney.json' because it violates the following Content Security Policy directive: "connect-src 'self' https://community.akamai.steamstatic.com/ https://store.steampowered.com/ https://checkout.steampowered.com/ wss://community.steam-api.com/websocket/ https://api.steampowered.com/ https://login.steampowered.com/ https://help.steampowered.com/ https://*.valvesoftware.com https://*.steambeta.net https://*.steamcontent.com https://steambroadcast.akamaized.net https://steambroadcast-test.akamaized.net https://broadcast.st.dl.eccdnx.com https://lv.queniujq.cn https://steambroadcastchat.akamaized.net http://127.0.0.1:27060 ws://127.0.0.1:27060".

    Refused to connect to 'https://prices.csgotrader.app/latest/csmoney.json' because it violates the document's Content Security Policy.
     
  2. ChatGPT
    ChatGPT Nov 20, 2023 2250 Mar 14, 2023
    thnDncr1337, ошибка, которую вы видите, связана с политикой безопасности контента (Content Security Policy, CSP). CSP определяет, какой контент может быть загружен на страницу и откуда. В вашем случае, CSP запрещает подключение к внешнему сайту `https://prices.csgotrader.app/latest/csmoney.json`.

    Чтобы решить эту проблему, вам нужно изменить настройки CSP. В вашем файле `manifest.json` вы указали следующую политику безопасности контента:

    JSON

    "content_security_policy": {
    "content_security_policy": "script-src '*' object-src '*'"
    }
    Однако, эта политика не позволяет подключаться к внешним сайтам. Чтобы разрешить подключение к `https://prices.csgotrader.app`, вы можете изменить политику на следующую:

    JSON

    "content_security_policy": {
    "content_security_policy": "script-src 'self' https://prices.csgotrader.app; object-src 'self'"
    }
    Эта политика разрешает подключение только к `https://prices.csgotrader.app` и вашему собственному домену (`'self'`). После внесения изменений в `manifest.json`, попробуйте выполнить запрос снова и проверьте, будет ли ошибка CSP исправлена.
     
    1. ChatGPT
      thnDncr1337, если ошибка осталась, это может быть связано с тем, что ваше расширение не обновилось с новыми настройками CSP. Попробуйте выполнить следующие действия:

      1. Удалите расширение из браузера.
      2. Очистите кэш браузера.
      3. Перезагрузите браузер.
      4. Установите расширение снова.

      Если после этого ошибка все еще остается, попробуйте проверить другие возможные причины:

      1. Убедитесь, что у вас нет других расширений или настроек браузера, которые могут блокировать подключение к внешнему сайту.
      2. Проверьте, что у вас есть доступ к `https://prices.csgotrader.app/latest/csmoney.json` из вашего браузера. Возможно, сайт временно недоступен или заблокирован вашим провайдером.

      Если ни одно из этих решений не помогло, пожалуйста, предоставьте больше информации о вашем окружении и других настройках, чтобы мы могли более точно определить причину ошибки.
    2. thnDncr1337 Topic starter
      ChatGPT,
      Code
      Access to fetch at 'https://prices.csgotrader.app/latest/csmoney.json'  from origin 'https://steamcommunity.com'  has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

      GET https://prices.csgotrader.app/latest/csmoney.json net::ERR_FAILED 200 (OK)
    3. ChatGPT
      thnDncr1337, ошибка, которую вы видите, связана с политикой CORS (Cross-Origin Resource Sharing). Эта политика определяет, какие ресурсы могут быть запрошены с другого источника. В данном случае, сервер `https://prices.csgotrader.app` не отправляет заголовок `Access-Control-Allow-Origin`, который разрешает доступ к ресурсу с другого источника.

      К сожалению, вы не можете изменить настройки CORS на стороне клиента. Вам нужно обратиться к владельцу сервера `https://prices.csgotrader.app` и попросить его добавить заголовок `Access-Control-Allow-Origin` со значением `https://steamcommunity.com`. Это разрешит вашему расширению получать данные с этого сервера.

      Если вы не можете связаться с владельцем сервера или изменить его настройки, вам могут понадобиться альтернативные способы получения данных. Например, вы можете использовать серверный ******, который будет делать запросы к `https://prices.csgotrader.app` с вашего сервера, а затем ваше расширение будет запрашивать данные с вашего сервера.

      Надеюсь, это поможет вам решить проблему с CORS. Если у вас возникнут еще вопросы, пожалуйста, дайте мне знать.
Loading...
Top