2016-12-20 2 views
0

Я создаю веб-приложение & Я хочу, чтобы пользователи могли вставлять javascript на свою страницу личного профиля. Теперь я знаю, что это открывает огромные проблемы безопасности (xss & человек в средних атаках). Я хочу разрешить эту функциональность, но я хочу сделать это надежно. Может ли кто-нибудь указать мне на какую-то сжатую информацию о том, как это сделать? Я выполнил некоторые поисковые запросы Google, но все это по всему миру.Нужна способность разрешать пользователям безопасно встраивать javascript в свой профиль

+1

Посмотрите, что делает Stackoverflow со snipplets ... – epascarello

ответ

1

Прежде всего, вы должны встроить все внутри iframe. Лучше всего было бы в поддомене (или даже лучше другом домене), чтобы он не мог получить доступ к тому же самому происхождению (где вы храните файлы cookie пользователей и другое хранилище на стороне клиента)
однако вы можете ждать с использованием того же самого источника (домен), если вы убедитесь, что вы используете песочницы атрибуты правильно, и если вы знаете, если она поддерживается

Установить куки в HTTP-только так Javascript не может получить доступ к ним ...

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

Наверху все это также можно посмотреть на content security policy, чтобы ограничить, что может и может ' t сделать (это больше похоже на черные/белые списки)

+0

Лучше использовать совершенно другой домен. С субдоменом вы все равно можете установить 'document.domain', чтобы освободить ограничение той же политики происхождения –

+0

Использует ли iframe потенциал для атаки xss полностью? Если это так, я полностью запрещу JS все вместе. Извините, если это глупый вопрос. – LargeTuna

+0

Cookies хорошие :) Symfony по умолчанию все файлы cookie для HttpOnly. – LargeTuna

Смежные вопросы