librown
@librown
На-все-руки-мастер и немного кодер

Насколько безопасно разрешать подгрузку css со стороннего домена?

Привет!
Делаю iframe-виджет для сторонних сайтов. Для настройки внешнего вида виджета разрешил сторонним сайтам указывать путь к внешнему css-файлу - и подключаю его в свой iframe.

Партнеры вставляют к себе такой код:
<script>
	var mysite_widget = {
			partner_id: 123,
			external_css: 'http://partner-site.ru/style.css'
	};
	</script>
	<script src="http://mysite.ru/widget.js"></script>

Далее, widget.js подгружает уже содержимое виджета в iframe:
...
<link href="my_style.css" rel="stylesheet">
<?if($external_css){?><link href="<?=$external_css?>" rel="stylesheet"><?}?>
...

А теперь задумался, похоже на дыру в безопасности?
Ведь внешний сайт может подгрузить не файл стилей, а допустим php-скрипт.
Подскажите, как лучше поступить? Чтобы и безопасно и реализовать гибкую кастомизацию стилей виджета?

Спасибо!
  • Вопрос задан
  • 285 просмотров
Решения вопроса 1
alsopub
@alsopub
Вы же не будете делать eval(...) переданного значения, значит код исполнен не будет.
Максимум что вам грозит, если вместо http://partner-site.ru/style.css вам передадут
http://partner-site.ru/style.css"> <script>alert(1);</script> <"

Проведите проверку $external_css на спец. символы (можно просто вырезать все кавычки и угловые скобки).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы