Nano Hash - криптовалюты, майнинг, программирование

nonce по сравнению с пользовательскими данными. это nonce= или nonce- на стороне клиента? также это nonce-xyz или 'nonce-xyz' на стороне клиента

Я запутался в реализации nonce для встроенных скриптов и CSS. Я определил на сервере, что

res.locals.cspNonce = crypto.randomBytes(16).toString("hex"); 

а также

scriptSrc: ['я', 'nonce-${res.locals.cspNonce}']

и заметил, что сами фактические значения nonce не отображались в клиентском браузере (Brave), хотя, тем не менее, скрипт выполнялся, поэтому не уверен, что это просто проблема безопасности на уровне браузера, потому что, когда я изменил свой клиент- встроенный одноразовый номер на что-то жестко закодированное, например «abc», скрипт отказался запускаться, что хорошо. Я просто еще не понимаю. Является ли nonce просто стандартной фразой? Если бы я так решил, мог бы я просто установить на стороне сервера

 scriptSrc: ["'self'", `'plackard=${res.locals.cspNonce}'`]

поэтому фраза «одноразовый номер» действительно не имеет значения, и я только что создал правило, согласно которому все сценарии на стороне клиента должны соответствовать атрибуту plackard=$somerandomcharaters?

Наконец, настройки на стороне сервера обычно заключают в одинарные кавычки «nonce=something» или «nonce-something». Почему? Я понимаю, что стандартный синтаксис HTML 5 для пользовательских атрибутов данных: https://www.w3schools.com/tags/att_global_data.asp

    data-custom="abc" 

нет

    'data-custom="abc"'

Дополнительная одинарная кавычка кажется ненужной и даже может запутать клиентскую часть браузера? Итак, заключайте в дополнительные одинарные кавычки все nonce или избавляйтесь от них? Является ли nonce исключением из стандартизированной парадигмы HTML5 fieldname=value и, следовательно, требует одинарных кавычек 'fieldname=value' или нет?

Если бы это было моим желанием, возникла бы проблема с настройкой моей серверной стороны 'nonce' как требующей, чтобы мой атрибут данных сценария говорил

  data-my-custom-safe-attribute="$insertRandomCryptographyHere"

?


Ответы:


1

и заметил, что сами фактические значения nonce не отображались в клиентском браузере (Brave)

Проверьте HTTP-заголовок Content-Security-Policy, ваши значения nonce там есть.

Является ли nonce просто стандартной фразой? Если бы я так решил, мог бы я просто установить на стороне сервера scriptSrc: ['self', 'plackard=${res.locals.cspNonce}']

nonce — «номер, который можно использовать только один раз». Это имя зарезервировано спецификацией CSP, и если вы будете использовать какие-либо другие имена, браузеры будут игнорировать токен 'plackard-base64value', а скрипты/стили не будут выполняться.

Наконец, настройки на стороне сервера обычно заключают в одинарные кавычки «nonce=something» или «nonce-something». Почему?

Здесь нет ИЛИ. 'nonce-base64value' в одинарных кавычках используется только в директивах:
script-src 'self' 'nonce-ABC' localhost http://example.com data:
все ключевые слова-выражения (токены) в одинарных кавычках, все host-источники и схемы-источники - нет.

nonce="ABC" используется в HTML-тегах и не заключен в одинарные кавычки:

<script nonce="ABC">
 var inline = 1;
</script>

строго соответствует парадигме HTML5 fieldname=value.
Пожалуйста, обратите внимание, что в директиве вы используете токен 'nonce-SomeValue', а в тегах HTML вы используете атрибут nonce=SomeValue. .

19.11.2020
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..