У меня есть страница, на которую она была запрошена. Я разрешаю пользовательскую настройку с помощью CSS.
Я счастлив сделать это, но пытаюсь выяснить, как сделать это безопасным.
Существует не так много таблиц стилей, которые будут применены к странице, но я изначально думал, что если бы я просто проверил, что страница является расширением CSS, я был бы в безопасности.
Однако проведенное мной исследование показывает, что xss легко сделать с помощью css.
Но я не смог найти никаких ресурсов о том, как разрешить безопасное включение созданного пользователем внешнего CSS.
У кого-нибудь есть предложения или ресурсы для этого?
MySpace удается это сделать вместе с несколькими другими сайтами, но я не понимаю, как это обеспечить.
У меня нет никаких «безопасных» пользовательских данных на странице, куда отправляется внешний css. Но я получаю несколько переменных для поиска.
---------------- дополнительные данные после ответа Слики ----------------------
Я не планирую разрешать каждому пользователю добавлять внешние CSS. Тем не менее, переменная css может быть установлена специальными квалифицированными пользователями, и как только эта переменная станет доступной, по сути, любой может установить ее по своему усмотрению. Единственный способ использовать эту переменную - это самим распространять URL, поэтому, возможно, я слишком обеспокоен безопасностью, но я сомневаюсь в этом.
Я могу установить его так, чтобы страница не индексировалась с помощью внешней таблицы стилей, но все еще беспокоюсь о том, как обеспечить безопасность для конечного пользователя.
У меня будет ссылка на мой сайт, где она будет
http://mysite.com/page?useracct=12343&extcss=http://location/of/css.css
Я настраиваю useracct, поэтому только там, где пользователи, которым я разрешаю включить разные css, имеют ссылки, созданные для их страниц. На моем сайте я бы связал эту учетную запись со страницей css.
Так что кто-то не может просто прийти и сказать
http://mysite.com/page?extcss=http://new/dangerous/css.css
Однако они могут создать ссылку
http://mysite.com/page?useracct=12343&extcss=http://new/dangerous/css.css
Единственный способ получить доступ к этой странице - это если человек, создавший опасный css, перенаправит эту ссылку.
Полагаю, если бы я хэшировал и подсолил extcss, он мог бы быть более безопасным. Может быть, это лучший путь?