Распространение WebComponent с кодом лицензии в script.sr c относительный путь - PullRequest
0 голосов
/ 09 марта 2020

Я гуглил этот относительный .. трюк пути в течение некоторого времени, не повезло

Я хочу распространить пользовательский элемент / веб-компонент хотя бы с некоторыми вид исполнения лицензии. ( да, я знаю, что все может быть декодировано )

  • Я не хочу или не нуждаюсь в какой-либо обработке Лицензионного кода на стороне сервера

    • Пользователь вводит доменное имя, на котором будет использоваться element.js

    • домен / LICENSECODE, сгенерированный один раз

    • Пользовательские загрузки element.js / или использует CDN element.js

    • Пользователь настраивает тег с кодом лицензии в относительном пути :

Кажется, работает, потому что:

  • Браузер перезаписывает относительные URL:

    • сервер. com / LICENSECODE / .. /path/element.js
    • становится URI запроса: server.com / path / element. js
  • (обфусцировано) * Файл 1061 * может затем использовать .getAttribute("src") для извлечения и проверки ЛИЦЕНЗИОДА против location.hostname

Вопрос: Любой Подводные камни?

Код ниже работает в Chrome, Edge, Firefox, Opera, не проверял Safari

ссылка на jQuery используется для подтверждения концепции

<script id=elementname src="https://cdnjs.cloudflare.com/LICENSECODE/../ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
  let S = document.querySelector("#elementname");
  console.log(S.src); // No, now is the processed request URI
  console.log(S.getAttribute("src")); //original string
  //inside elements.js script:
  let code = document.querySelector('#elementname').getAttribute("src").split("/")[3];
</script>
...