Есть ли какой-либо ООП-способ защитить этот дизайн веб-приложения MVC? - PullRequest
2 голосов
/ 05 января 2010

Я пишу приложение для корзины для онлайн-семенного бизнеса члена семьи.

Это довольно простой рабочий процесс - пользователи выбирают, что они хотят заказать, вводят свои контактные данные, и приложение генерирует квитанцию ​​электронной почты в формате HTML и отправляет ее на контактный адрес.

Теперь вот в чем проблема - я реализовал приложение в шаблоне MVC.

У меня есть интерфейс AJAX, который касается только навигации по рабочему процессу и отображения форм / текущего размещенного заказа / и т. Д. Я генерирую весь HTML, отображаемый для пользователя через AJAX.

Бэкэнд PHP просто генерирует каталог, проверяет весь ввод пользователя и выполняет небольшую бухгалтерию. Мои PHP-скрипты возвращают только XML, который анализируется моим AJAX.

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

Однако, поскольку я не могу отправить электронное письмо только через AJAX, мне нужно вызвать PHP-скрипт, передать строку HTML, которую я хочу отправить как электронное письмо, чтобы PHP добавил правильные заголовки и отправь в путь.

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

Как мне обеспечить безопасность, сохраняя при этом схему MVC? Я хочу сохранить презентацию вне моего PHP и избежать дублирования кода - поэтому я не хочу, чтобы мой PHP генерировал HTML, который будет отправляться по электронной почте.

Заранее спасибо.

1 Ответ

2 голосов
/ 05 января 2010

Если вы используете сессию (которая генерируется при входе пользователя) и проверяете такую ​​сессию перед отправкой электронного письма, вам не стоит об этом беспокоиться. Ваш php-скрипт для отправки электронного письма должен гарантировать, что его может использовать только авторизованный пользователь (проверяя сеанс).

Это также должно быть верно для других чувствительных к безопасности страниц.

Надеюсь, это поможет.

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