1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.exoplatform.ecm.webui.form.validator;
18
19 import org.apache.commons.lang.StringUtils;
20
21 import org.exoplatform.commons.utils.HTMLSanitizer;
22 import org.exoplatform.web.application.ApplicationMessage;
23 import org.exoplatform.webui.exception.MessageException;
24 import org.exoplatform.webui.form.UIFormInput;
25 import org.exoplatform.webui.form.validator.Validator;
26
27
28
29
30
31 public class XSSValidator implements Validator {
32
33 @Override
34 public void validate(UIFormInput uiInput) throws Exception {
35 String inputValue = ((String) uiInput.getValue());
36 if (inputValue == null || inputValue.trim().length() == 0) {
37 return;
38 }
39
40 inputValue = HTMLSanitizer.sanitize(inputValue);
41 if (StringUtils.isEmpty(inputValue)) {
42 String message = "UIActionForm.msg.xss-vulnerability-character";
43 if (uiInput.getLabel() == null)
44 message = "UIActionForm.msg.xss-vulnerability-character-wo-label";
45 Object[] args = { uiInput.getLabel() };
46 throw new MessageException(new ApplicationMessage(message, args, ApplicationMessage.WARNING));
47 }
48 }
49 }