переоцените переменные make-файла

CSP не предназначен в качестве первой линии защиты от уязвимостей, связанных с внедрением контента.

...

Новый ответ II

Вопрос:

Чтобы уточнить: браузер по-разному относится к изображениям или другим ресурсам, не относящимся к документам, если они поставляются с заголовком CSP присоединен?

blockquote>

Мой ответ:

  • Сначала определите « не-документ »? У W3 (ребята, которые определяют, как на самом деле работает интернет) есть определение «документа» , и я предполагаю, что ваше определение такое же.

    Если это не так, просьба уточнить соответственно.

Правила W3 по политике безопасности контента (по состоянию на октябрь 2018 г.) гласят, что цели CSP заключаются в следующем:

    [ 1113]

    Снижение риска атак с внедрением контента, предоставляя разработчикам достаточно детальный контроль над:

    • Ресурсами, которые могут быть запрошены (и впоследствии внедрены или выполнены) от имени конкретный документ или работник

    • Выполнение встроенного скрипта

    • Динамическое выполнение кода (посредством eval () и аналогичных конструкций)

      [1155 ]
    • Применение встроенного стиля

  • Снижение риска атак, требующих внедрения ресурса в вредоносный контекст («Пиксель»). Совершенная «атака, описанная в [TIMING], например), предоставляя разработчикам детальный контроль над источниками, которые могут встраивать данный ресурс.

  • Предоставить структуру политики, которая позволяет разработчикам снижать привилегии своих приложений.

  • Обеспечить механизм отчетности, который позволяет разработчикам обнаруживать недостатки, эксплуатируемые в дикой природе.

blockquote>

Примечание пункт 1 (i);

«Ресурсы, которые могут быть запрошены (и впоследствии внедрены или выполнены) от имени конкретного документа или работника »

blockquote>

Документ определяется, как указано выше, и работа определяется, по сути, как то, что использует модель DOM Javascript ( это может быть неверно ).

Таким образом, CSP, как ожидается, будет применяться к документам (данное) и работникам .

Являются ли другие (MP3, PDF и т. Д.) Файлы документами или рабочими? Они не являются документами, но то, как они обрабатываются в браузерах , подразумевает, что они содержатся в структуре документов .

Пожалуйста, посмотрите этот старый Chrome Bug report . При этом PDF не смог загрузить содержимое из-за настроек CSP веб-сайтов, и PDF фактически загружался плагином браузера (родным для всех современных браузеров) и поэтому был подвержен влиянию object-src CSP.

Это CSP версии 1, и у меня нет оснований думать, что либо способ, которым браузеры обрабатывают файлы без документов, либо способ интеграции CSP значительно изменился с тех пор, как была обнаружена эта ошибка.

Поэтому: браузерам НЕ ТРЕБУЕТСЯ применять CSP к недокументированным и нерабочим объектам, но из-за того, как работают браузеры, они, вероятно, будут применять заголовки CSP к недокументированным и не-документальным объектам. -работающие объекты, поскольку эти объекты будут обернуты в модели документов для облегчения работы с файлами в браузере.

Но Это происходит из-за кодирования браузера и не должно ожидаться с октября 2018 года.

10
задан 16 February 2009 в 22:00
поделиться

3 ответа

Вы могли бы попытаться делать, рекурсивное делают, что-то как

MAP_FILES = $(shell find $(TMP) -name "*.map")

all: generate_map_files

generate_map_files:
   ./map-builder; $(MAKE) work_with_map_files

work\_with\_map_files: $(MAP_FILES)
   ./map-user

%.map:
   ./map-edit $@
4
ответ дан 4 December 2019 в 02:27
поделиться

С GNU делают, можно использовать в своих интересах функцию переделки make-файла, которая вызывает GNU, делают, чтобы автоматически перезапустить, если какой-либо из включенных make-файлов изменяется во время начальной передачи. Например:

.PHONY: map_files.d
-include map_files.d
map_files.d:
        ./map_builder
        echo "work_with_map_files: `ls *.map`" > map_files.d

work_with_map_files:
        ./map_user

В дополнение к функции переделки make-файла это решение использует то, что GNU делает, позволяет Вам указывать несколько строк предпосылок для цели. В этом случае файл карты prereqs объявляется в динамично сгенерированном map_files.d файле. При объявлении map_files.d, поскольку ФАЛЬШИВАЯ цель гарантирует, что всегда повторно создается при выполнении сборки; это может или не может быть соответствующим в зависимости от Ваших потребностей.

3
ответ дан 4 December 2019 в 02:27
поделиться

В целом это не возможно в Make-файлах, потому что определить что цели сделать и в какой порядок, make потребности знать их зависимости заранее перед правилами выполняются.

В Вашем примере, как был бы make знайте, когда оценить $(MAP_FILES) в work_with_map_files правило? Порядок явно не определен, но выведен из зависимостей. В Вашем примере Вы хотите, чтобы это было оценено после generate_map_files правило выполнялось, но нет никакого пути к make знать что, потому что этому нужно для знания значения этой переменной для зависимостей, которые необходимы для определения порядка, в котором это значение было бы оценено - который является самосправочным циклом.

Один простой прием должен был бы, конечно, работать, делают дважды - можно было сделать это автоматически путем добавления a make work_with_map_files команда после ./mapbuilder команда в generate_map_files шаблон, но быть осторожным с этим в целом, потому что, если work_with_map_files как на самом деле объявляли бы, зависел бы от generate_map_files (который это должно), это привести к рекурсивному большому количеству make цикл. И конечно это побеждает идею make автоматически определение порядка. Еще Вам был бы нужен a make замена, которой можно подсказать на таких заказах и сделать несколько передач.

Это - причина, которые в больших кодовых базах с несколькими включают файлы, где каждый не хочет повторять включать зависимости в Makefile, makedepend часто используется для генерации отдельного Make-файла с теми зависимостями, который включен в основном Makefile. Создавать тот затем работает сначала make depend который звонит makedepend генерировать включать зависимости от файла, и затем make.

1
ответ дан 4 December 2019 в 02:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: