2017-07-04 66 views
0

的SonarQube提示(規則 「Web applications should use validation filters」)表明,這種標準的解決方案:SonarQube關鍵違反要求對REST API的web.xml文件過濾器

public class ValidatingHttpRequest extends HttpServletRequestWrapper { 
    // ... 
} 

public class ValidationFilter implements javax.servlet.Filter { 
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) { 
    chain.doFilter(new ValidatingHttpRequest((HttpServletRequest)request), response); 
    } 
} 

,並在web.xml:

<filter> 
    <filter-name>ValidationFilter</filter-name> 
    <filter-class>com.myco.servlet.ValidationFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>ValidationFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

但我不知道在這裏預期的驗證。我的代碼是rest api(resteasy實現),所有服務都在"/rest/*路徑下。這是一個假陽性案件嗎?

回答

1

根據OWASP的說法,注入缺陷是最大的應用程序安全風險之一(link)。基本的預防思想包括使用whitelist方法自動驗證所有輸入值。爲了實現它在Java EE中,OWASP建議使用自定義過濾器,你可以找到一些限制性的圖案here更多細節。

TL;博士:聲納需要你過濾掉一些潛在的不安全輸入的字符。

在我看來,這個規則太籠統了,並不適用於所有可能的應用程序 - 有可能以多種方式防止代碼注入。

+0

我會接受你的好鏈接的參考答案。謝謝 – guilhermerama