У меня очень простой вопрос о веб-приложениях MVC на Java.
Начиная с прежних дней сырой JSP и вплоть до современных технологий, таких как Seam, очень простой шаблон всегда был внутренней диспетчеризацией от контроллера, который первоначально принял запрос к уровню представления, который создает выходные данные для отправки клиенту.
Эта внутренняя диспетчеризация обычно выполняется (хотя механизм может быть скрыт через дополнительный уровень конфигурации), запрашивая у контейнера сервлета новый ресурс с использованием URL-адреса. Сопоставление этих URL-адресов выполняется тем же файлом web.xml, который также определяет «реальный» URL-адрес снаружи.
Если не приняты специальные меры, часто можно напрямую получить доступ к слою вида. Посмотрите демонстрационную версию "регистрации" в Seam, где вы можете обойти "register.seam" и перейти непосредственно к "istered.xhtml ". Это потенциальная проблема безопасности. По крайней мере, он пропускает представление исходного кода шаблона.
Мне известно, что это только базовый пример приложения, но также странно, что необходимо принимать какие-либо дополнительные меры, чтобы объявить эти внутренние ресурсы невидимыми для внешнего мира.
Какой самый простой способ ограничить точки входа URL?
Может быть, есть что-то вроде каталога "WEB-INF", компонента магического пути URL, доступ к которому возможен только по внутренним запросам?