Добавление мини-администратора на веб-страницу - PullRequest
0 голосов
/ 30 декабря 2010

Представьте это: вы создаете небольшой модуль, который люди могут легко добавить на свой веб-сайт, например, небольшую контактную форму. Он будет состоять из файла PHP, который выводит некоторый HTML, файл Javascript (ajax и т. Д.), Файл CSS и скин CSS. Теперь человек , который мало знает о кодировании, хочет интегрировать его на веб-странице (website / index.php). Мы могли бы сделать это с тремя правилами кода:

<link rel="stylesheet" href="module/css/module.css" />
<script src="module/js/module.js"></script>
<?php require_once 'module/module.php'; ?>

Нет сомнений, что эта часть сомнительна, верно?

Теперь, когда мы хотим добавить администратора для этого маленького модуля, есть две опции:

  1. Доступ к администратору через дополнительный URL-адрес, такой как веб-сайт / module / admin.php и после аутентификации отображается страница, где человек может сделать все настройки. Человек затем уходит вернуться к index.php, чтобы увидеть Результаты.
  2. Включение администратора через дополнительный URL-адрес, такой как веб-сайт / module / admin.php и после аутентификации, перенаправление обратно на index.php. человек теперь может редактировать модуль напрямую (HTML5 contenteditable) и посмотреть изменения вживую, на веб-странице, где все остальные увидят, когда человек сохраняет изменения.

Вариант 2 имеет несколько преимуществ:

  • Человек не должен переключаться между admin и index.php.
  • Человек может непосредственно видеть, как он смотрит на веб-страницу, в которую он интегрирован.
  • Человек , вероятно, чувствует, что модуль является частью веб-страницы / сайта.

Конечно, у варианта 2 есть и некоторые недостатки:

  • Не все работает хорошо, редактируя его в строке.
  • Человек должен иметь браузер, совместимый с HTML5.
  • Возможно, я еще не могу вспомнить прямо сейчас.

Теперь у меня есть несколько проблем, на которые я не вижу четкого ответа.

  1. Как бы мы позволили человеку интегрировать админа на своих страница интернета? Админ файлы нужны только быть включенным в index.php, если человек выбрал для редактирования модуль через URL (Веб-сайт / модуль / admin.php). Но как мы можем сделать это, если у нас есть Файл admin.css, который принадлежит головной раздел, файл admin.php, который входит в тело, а другой Файл admin.js, который включен в конец тела?
  2. Откуда нам знать, что файл admin.php необходимо перенаправить обратно, после аутентификации? index.php может быть любая веб-страница с любым именем. Ответ: <?php echo $_SERVER['PHP_SELF']; ?>

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

1 Ответ

2 голосов
/ 31 декабря 2010

Обобщение: интерфейсы администратора не принадлежат основному приложению.Интеграция возможностей редактирования в основной интерфейс часто необходима для удобства использования.Но как только он граничит с административными задачами, вы должны знать о последствиях для безопасности.Независимо от качества кода, возможны неверные конфигурации, которые не должны влиять на инструменты администратора.Оставьте их внешними, чтобы добавить дополнительные меры предосторожности (в одном проекте я использую http auth И форму входа).

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

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

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

...