0

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

一个)

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

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

二)

    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) 获取类的方法并迭代。

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

也欢迎任何其他类型的建议。

4

1 回答 1

0

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

于 2017-01-06T16:58:47.750 回答