WedX - журнал о программировании и компьютерных науках

Настройка шифрования состояния просмотра JSF в JSF 1.2 с помощью Mojarra

Я пытаюсь понять, как зашифровать состояние просмотра с помощью JSF 1.2 и Mojarra. Странно то, что на некоторых серверах он по умолчанию зашифрован, а на других нет. Например, на моем локальном хосте я вижу следующее:

<input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="-40233784603124937:-3413182513789758151" autocomplete="off" />

Но на наших серверах тестовой среды я получаю:

<input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="j_id4:j_id5" />

Вы заметите два различия между этими двумя:

  1. Первый имеет autocomplete="off"
  2. В первом случае значение viewState зашифровано, а во втором нет.

Проблема в том, что я не могу понять, почему они разные. Кодовая база на моем локальном хосте такая же, как и на сервере. В моем web.xml не указаны параметры конфигурации, поэтому я предположил, что мой локальный хост не будет зашифрован (так как это значение по умолчанию, верно?).

Согласно документация Mojarra Я должен добавить:

<env-entry>
 <env-entry-name>com.sun.faces.ClientStateSavingPassword</env-entry-name>
 <env-entry-type>java.lang.String</env-entry-type>
 <env-entry-value>[SOME VALUE]</env-entry-value>
</env-entry>

Но это, похоже, специально для сохранения состояния клиента, а не для сохранения состояния на стороне сервера. И если я не ошибаюсь, я использую сохранение состояния на стороне сервера (по крайней мере, я нигде не могу найти, что мы настроили javax.faces.STATE_SAVING_METHOD.

Итак, мои вопросы:

  1. Почему моя конфигурация может отличаться между локальным хостом и сервером? Можно ли указать какие-либо другие параметры, кроме web.xml?
  2. Как включить шифрование viewState (например, на моем локальном хосте) на всех наших серверах?

Конфигурация:

  • JBoss 5.1.0.GA
  • Мохарра 1.2_12-b01-FCS
  • Шов 2.2.0.GA

Ответы:


1

autocomplete="off" в скрытом поле состояния просмотра было введено в Mojarra 1.2_13 в соответствии с issue 1129. Другой алгоритм идентификатора состояния просмотра (который менее чувствителен к атакам CSRF) был представлен в Mojarra 1.2_14 (я не могу найти соответствующий отчет о проблеме, все, что я знаю, это то, что он был указан для JSF 2.0 в первый раз, а затем был перенесен в Мохарра 1.2).

Судя по симптомам, в вашей тестовой среде на самом деле работает как минимум Mojarra 1.2_14. Выровняйте свои версии JSF. Mojarra 1.2 в настоящее время уже имеет версию 1.2_16. Обратите внимание, что JBoss по умолчанию поставляется вместе с Mojarra.

27.02.2013
  • Спасибо, поищу версию модхарры на серверах. Я вытащил 1.2_12 из файла конфигурации jboss, но, возможно, у нас есть что-то, что его перекрывает. Отчитаюсь позже. 27.02.2013
  • Другой возможной причиной может быть грязный путь к классам. Например. сбросив библиотеки JSF в /JRE/lib или /JRE/lib/ext, чтобы исправить ошибки компиляции в javac или IDE (некоторые новички, которые вообще не понимают концепцию пути к классам, делают это). 27.02.2013
  • Ты прав. Кажется, в какой-то момент кто-то обновил банку Mojarra, распространяемую с нашей средой разработки. То есть 1.2_14, в то время как другие наши среды — 1.2_12. Это объясняет проблему. Я предполагаю, что алгоритм идентификатора состояния просмотра был фактически перенесен на 1.2_14, а не на 1.2_15. Спасибо за помощь! 27.02.2013
  • Странно, я не вижу этого нигде в примечаниях к выпуску 1.2_14. Я все равно обновлю ответ ради корректности. 27.02.2013
  • Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]