2016-11-23 22 views
0

APPScanがValidation.requiredエラーを投げている場所があります。ここではオブジェクトを設定しています。今すぐオブジェクトは、次の2つの方法で設定されている:オブジェクトを検証する

A)

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

この私は単に私がセッションから取得していたオブジェクトの場合はnullチェックを行うことで解決しています。

それが問題を解決します場合、私は(私のdonnoのすべての引数にnullチェックを行うと、それを設定する前に、完全なオブジェクトの場合はnullチェックを行うことができます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)クラスのメソッドを取得し、繰り返します。

しかし、私が設定している議論を確認するにはどうすればよいですか?

他の提案も歓迎します。

+0

nullがある場合はどうしますか?空の文字列に設定しますか? – developer

+0

完全なサンプルを提供することができれば、あなたをより良くするためにエレガントになるでしょう。 – varra

+0

あなたはこの記事を読むことができます:[避けてください!= null文](http://stackoverflow.com/q/271526/2815219) –

答えて

0

nullチェックを行う代わりに、Validatoin.requiredの検出を軽減する主な目的は、悪意のある入力に対して検証することです。悪意のあるユーザーが制御できる値に変数を設定できるかどうかをコードにチェックインします。システム外からの入力は、ホワイトリストを使用して検証する必要があります。https://www.owasp.org/index.php/Input_Validation_Cheat_Sheet#White_List_Input_Validation

関連する問題