Простые лица подтверждают диалог с разрывом строки и опасениями XSS - PullRequest
0 голосов
/ 28 января 2020

У меня есть командная кнопка с действием подтверждения с использованием простых лиц:

<p:commandButton value="Test"
    rendered="..."
    action="#{controller.actionMethod(param)}">
    <p:confirm header="Confirmation" escape="false" message="This is a really long message test &lt;br/&gt; 
        This is a really long message test."/>
</p:commandButton>

Я прочитал, что отключение escape является потенциальной уязвимостью атаки XSS, поэтому я пытаюсь исправить эту проблему без использования обрыва строки в сообщении (и допускается escape = true)

Подтверждение: глобальный:

<p:confirmDialog global="true" showEffect="fade" hideEffect="fade">
    <p:commandButton value="Yes"
        type="button" styleClass="ui-confirmdialog-yes" icon="ui-button-icon-left ui-icon ui-c ui-icon-check" />
    <p:commandButton value="No"
        type="button" styleClass="ui-confirmdialog-no" icon="ui-button-icon-left ui-icon ui-c ui-icon-close" />
</p:confirmDialog>   

Я пробовал использовать стили с использованием переноса строк, но у меня нет не повезло Я гоняюсь за не проблема? Это на самом деле уязвимость XSS?

1 Ответ

1 голос
/ 28 января 2020

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

<p:confirmDialog header="Confirmation">
    <f:facet name="message">
        Are you sure you want to continue?<br/>Yes or no?
    </f:facet>
</p:confirmDialog> 

Тем не менее, если вы хотите go таким образом, предполагая, что вы используете Prime Faces 7 в руководстве по документации несколько раз Атрибут escape задан без предупреждения для XSS. Я бы больше беспокоился о XSS, когда получаю ввод текста от пользователя, чем ввод с помощью кнопки.

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