验证对象

时间:2016-11-23 05:13:37

标签: java validation bluemix-app-scan

有很多地方APPScan在我的代码中抛出 Validation.required 错误,我在这里设置了一个对象。现在对象有两种设置方式:

A)

ExceptionBldr excepBuilder = (ExceptionBldr) session.getAttribute(SN_EXCEPBLDR);

这是我通过简单地对我从会话中获取的对象进行空检查来解决的。

B)

    PageManager pm;
    HttpServletRequest request = modelContext.getHttpServletRequest();
    ResourceBundle resourceBundle = documentContext.getResourceBundle();
    if (request.getAttribute("PageManager") == null) {
        pm = new PageManager(modelContext, documentContext);
        String title = resourceBundle.getString("Workbench.title");
        if (title == null)
            title = "";
        pm.setPageTitle(title + " " + getInstance(request));            
        pm.setInstanceName(getInstance(modelContext.getHttpServletRequest()));
        pm.setListingName(getListingName());
        request.setAttribute("PageManager", pm);

我可以对所有参数进行空检查,然后在设置之前对完整对象进行空检查(我不知道如果这样可以解决问题)但是有更好的方法吗?我想为所有这样的实例编写泛型类。

部分想法:

a)验证对象是否属于有效类。

b)获取类的方法并迭代。

但是如何检查我正在设置的参数?

欢迎任何其他建议。

1 个答案:

答案 0 :(得分:0)

而不是(或除此之外)进行空检查,减轻Validatoin.required发现的主要目标是验证恶意输入。检查代码是否可以将任何变量设置为可由恶意用户控制的值。任何来自系统外部的输入都应使用白名单进行验证:https://www.owasp.org/index.php/Input_Validation_Cheat_Sheet#White_List_Input_Validation