#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. 🙂