2016-10-02 49 views
-2

我的应用程序是使用Oracle ADF开发的。我在表单中使用<af:inputText>输入字段。有没有一种通用的方法来避免ADF输入字段中的HTML内容

在这里,我必须避免输入字段中的HTML内容。在ADF中有没有一种方法可以避免表单输入字段中的HTML内容。

+0

这是一个验证相关的问题,你要防止用户从通过ADF输入提交HTML到服务器? –

+0

@JalalSordo是的,我必须防止客户端到服务器的HTML内容。 – Awesome

+0

用jsoup去掉所有html标签服务器端http://stackoverflow.com/questions/12943734/jsoup-strip-all-formatting-and-link-tags-keep-text-only – Kukeltje

回答

0

OWASP#3 - 它是持久化到数据库之前,跨站点脚本(XSS)输入到系统

所有数据都必须被验证。特别是稍后在应用程序用户界面上重新显示的数据输入会暴露跨站脚本的风险。

要实施有效的数据输入Oracle ADF中,应实现以下战略

  1. 限制自由文本输入框的数量和 选择选择
  2. 验证更多的所有的用户输入替换它们多于一层
  3. 逃逸输出数据

参考:http://www.oracle.com/technetwork/developer-tools/adf/adfowasptop10-final-2348304.pdf

0

解决这个问题的一种方法是在inputText上添加一个验证器。所以你有这样的事情:

<af:inputText ... validator="#{scope.beanName.methodName}".../> 

当然在beanName的,你必须添加的验证方法:

public void methodName(FacesContext pContext, UIComponent pComponent, Object pValue) { 
    String userInput = pValue.toString(); 
    if(containsHtml(userInput)) { 
    FacesMessage message = new FacesMessage(...); 
    throw new ValidationException(message); 
    } 
} 

public boolean containsHtml(String pUserInput) { ... your logic ... } 
相关问题