ASP.NET Ajax Control Toolkit — Политика безопасности контента

#asp.net #webforms #ajaxcontroltoolkit #content-security-policy

#asp.net #веб-формы #ajaxcontroltoolkit #политика безопасности содержимого

Вопрос:

У меня есть внутреннее веб-приложение. Это приложение webforms .net 4.x. Он использует ajax control toolkit вместе с updatepanel. В частности, он часто использует tabcontainer / tabpanels. У меня была проблема с запуском tabcontainer / tabpanels, пока я не открыл csp. Я делал это несколько лет. У меня есть настройка политики безопасности контента в моем файле web.config:

 <add name="Content-Security-Policy" value="style-src 'self' 'unsafe-inline' 'unsafe-eval'; script-src 'self' 'unsafe-inline' 'unsafe-eval'" />
 

Этот csp позволяет всему работать. Теперь у меня две проблемы:

  • Специалисты по безопасности указали текущий csp как проблему безопасности с низким уровнем риска и хотели бы, чтобы я ее изменил. Это низкий риск, но я хотел бы предоставить какое-то решение для этого, если это возможно. Я прочитал несколько сообщений о том, как сложно заставить ACT работать правильно с CSP, поэтому это может быть невозможно. Я попытался создать пакет ACT и просто отправить его, но в инспекторе Chrome я получаю сообщение об ошибке, в котором говорится, что это 404 iirc. Все работает, но мне не нравится ошибка 404. Удаление пакета в диспетчере сценариев, похоже, работает и не создает никаких дополнительных ошибок. Кто-нибудь еще заметил ошибку 404 в проверке Google Chrome с помощью пакета ACT в диспетчере сценариев?
  • Недавно мне пришлось добавить еще две вкладки. На этих двух вкладках есть iframe, который отображает содержимое с другого внутреннего веб-сайта. чтобы заставить это работать под вкладками, я должен фактически удалить csp. Я не думаю, что им понравится удаленный csp.

Я попытался поиграть с csp, чтобы загрузить некоторый тестовый контент из Google. К сожалению, следующий csp не работает. Я бы подумал, что он будет загружаться с текущего локального сервера и сайта Google. К сожалению, содержимое из google.com не загружается. Chrome выдает мне недовольное лицо при попытке загрузки. Приветствуются предложения о том, как загружать содержимое только с локального сервера и с одного удаленного сервера.

 <add name="Content-Security-Policy" value="frame-src 'self' *.google.com; style-src 'self' 'unsafe-inline' 'unsafe-eval' *.google.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' *.google.com" />
 

Итак, вопрос (спасибо pkalkins), как мне добавить возможность включать iframe, содержащий содержимое с другого внутреннего сайта, чтобы iframe правильно отображал содержимое в этом iframe? Я использовал google.com сайт как просто пример, который я тестирую здесь, в моей удаленной системе.

Заранее спасибо за любые мысли или предложения. 🙂

Уолли

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

1. Возможно, вы захотите включить вопрос… трудно понять, что сказать на самом деле, потому что мы не знаем, нужна ли вам высокая безопасность, очень низкая безопасность, какие риски вы пытаетесь избежать / не избежать … просто с головы до ног, ‘unsafe-eval’ кажется очень плохой идеей. Межсайтовые фреймы iframes немного менее рискованны, но обязательно безопасно записывают файлы cookie. (только для http, на том же сайте)

2. Спасибо pcalkins. Я добавил актуальный вопрос. Трудно запомнить, чтобы вставить все, когда вы делаете дамп мозга. Что касается небезопасной оценки, у нас есть контент только локально, и я проверяю все входные данные и очищаю их. Без этого вкладки, похоже, не работают должным образом.

3. Вы можете сделать это без использования методов eval.

4. Чтобы ответить на ваш вопрос, у вас не должно возникнуть никаких проблем, если другой внутренний сайт находится в том же домене.

5. Ну, с моей стороны это мог быть полный бред, но сейчас все работает. Возможно, я неправильно запомнил проблемы, связанные с тем, что iframe не работает, потому что этот web.config теперь работает. спасибо за вашу помощь @pcalkins. 🙂