Различайте '‹' и закодированный эквивалент, используя PortletRequest.getParameter()

Я пишу портлет JSR 286 для IBM WebSphere Portal 6.1. У меня есть следующий код:

@ProcessAction(name="processForm")
public void processForm(ActionRequest request, ActionResponse response) 
    throws PortletException, IOException {    

    String formField1 = request.getParameter("formField1"));
    System.err.println("formField1: " + formField1);
}

Если пользователь отправляет '‹' в форму HTML, система выводит:

formField1: '<'

Однако, если пользователь отправляет '' в HTML-форму, система также выводит:

formField1: '<'

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

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


person cc1001    schedule 28.06.2011    source источник


Ответы (1)


Вы видите, что '‹' поступает на сервер, и это не какой-то другой компонент, который изменяет '‹', например, сам браузер?

Если нет, как насчет пункта 4 на этой странице (Проблема: символы "‹" и ">" отображаются неправильно):

http://publib.boulder.ibm.com/infocenter/wpdoc/v510/index.jsp?topic=/com.ibm.wp.ent.doc/wps/tbl_sec.html

person Paul Grime    schedule 09.09.2011
comment
На самом деле это была настройка межсайтового скриптинга, как описано в статье, которую вы предоставили. Просто поясню: поскольку наша версия портала 6.1, а не 5.1, как указано в статье, решение состояло в том, чтобы установить для свойства security.css.protection значение false в поставщике среды ресурсов WP ConfigService. - person cc1001; 12.09.2011