Что-то не так с тем, как я внедряю Календарь на моем сайте? - PullRequest
0 голосов
/ 01 октября 2009

Я настраиваю веб-сайт для учащихся школы, который должен включать страницу расписания, на которой будет отображаться календарь с событиями, заполненными фидами из календарей различных учителей. После опробования различных сценариев и инструментов, предназначенных для показа календарей, я наконец-то нашел очень неаккуратный, взломанный способ сделать это, и я хочу знать, есть ли какие-то конкретные проблемы с моей реализацией.

Мои требования из этого календаря опубликованы в предыдущем вопросе Вот как будет работать моя реализация:

Учителя составляют свои расписания в своих собственных календарных программах и делают эти каналы доступными в формате iCal. Общая учетная запись Google для школы подписывается на все эти календари, и поэтому получает доступ только для чтения ко ВСЕМ расписанию учителя в школе. В Календаре Google есть функция, которая позволяет вам выбрать некоторые из своих календарей, а затем получить HTML-код для встроенного на ваш сайт iframe, чтобы посетители сайта могли видеть, какие события будут происходить. Когда я поэкспериментировал с опциями в «Конфигураторе» Google, я обнаружил, что, просто включив определенные коды в URL, который вызывается для содержимого iframe, вы можете изменить, какие календари были видны. Эти коды или идентификаторы календаря четко отображаются в настройках каждого календаря. Таким образом, мое окончательное решение таково:

Для каждого учащегося есть запись, в которой указано, какие курсы он прошел, и, следовательно, какие календари ему следует показывать. Используя некоторую магию SQL, я могу извлечь идентификаторы календаря из заранее подготовленной базы данных всех идентификаторов календаря, а затем с помощью php сгенерировать правильный URL-адрес для iframe и отобразить его.

Я надеюсь, что это не было слишком запутанным, чтобы понять. Теперь кто-нибудь может сказать мне, есть ли в этом какие-то присущие им недостатки в безопасности или плохие методы программирования. Что-то во всей идее динамической генерации URL, использования фреймов, использования обычной учетной записи Google и т. Д. Просто кричит «Ошибка!». Может кто-нибудь сказать мне, если это нормально, или есть какие-то проблемы с этим?

1 Ответ

1 голос
/ 08 февраля 2010

На самом деле, я думаю, что ваше решение может быть очень безопасным. Использование единой учетной записи Google для сбора календарей только для чтения в одном месте - всего лишь организационный ярлык. Пока сами календари доступны только для чтения, ваша единственная учетная запись не содержит ничего, что уже не является общедоступным.

Создание URL-адресов вполне разумно, если вы объединяете строки, которые вы предварительно санировали. Поскольку ваша база данных может получать только идентификаторы календаря из вашей учетной записи Google для агрегирования, вы знаете, что потенциально злонамеренные пользователи не могут привести к тому, что произвольные символы попадут в ваши синтезированные URL-адреса.

Самая большая проблема, с которой вы, вероятно, столкнетесь, заключается в том, что встроенный в Google календарь iframe допускает только до десяти каналов календаря.

Наиболее вероятной уязвимостью безопасности, с которой вы столкнетесь, является безопасность всех календарей Google преподавателей.

По умолчанию календари Google принимают "приглашения" и публикуют их как события. Вы можете обнаружить, что любой может «пригласить» календарь учителя на розыгрыши, и эти розыгрыши будут отображаться в студенческих календарях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...