2016-09-27 4 views
0

素敵な人、私はoDataを使用して、ユーザーが入力した情報の一部を検証しています。大きな問題は、たとえば、Chromeデバッガで簡単に実行できるクロスサイトスクリプティングを避けることです。これを避ける方法は?JavaScript SAPUI5を使用してクロスサイトスクリプティングを防止するにはどうすればよいですか?

マイコード:

  onPress: function(oEvent) { 
       var event = this.getView().getModel("loggin").getProperty("/TypeCon"); 
       var TestMode = this.getView().getModel("loggin").getProperty("/TestMode"); 

       if (event == ""){ 
        event = "SAP"; 
       } 


       if (event != 'SAP'){ 
        MessageToast.show("Esta conexão ainda não está disponível"); 
       }else{ 

        if(TestMode == 'X'){ 
         this.getRouter().navTo("CockpitGo"); 
        }else{ 

      var oEntry = {}; 
      oEntry.User= this.getView().getModel("loggin").getProperty("/User"); 
      oEntry.Password= this.getView().getModel("loggin").getProperty("/Password"); 

      var sServiceUrl = "http://abapfox.ddns.net:8000/sap/opu/odata/SAP/YLOGGIN_DATA_SRV/"; 
      var oModel = new sap.ui.model.odata.ODataModel(sServiceUrl, true); 

         //Vamos montar antes o URI pra ver se fica tudo certinho: 
         var Uri = "/sap/opu/odata/SAP/YLOGGIN_DATA_SRV/LoginDataSet(User='" + oEntry.User + "',Password='" + oEntry.Password + "')"; 
         OData.request({ 
           requestUri: Uri, 
           method: "GET", 
           headers: { 
            "X-Requested-With": "XMLHttpRequest", 
            "Content-Type": "application/atom+xml", 
         "DataServiceVersion": "2.0", 
         "X-CSRF-Token": "Fetch" 
        } 
       }, 
       function(data, response) { 
        if (data.Success === true) { 
         // show message 
         MessageToast.show(data.Message); 
         this.getRouter().navTo("CockpitGo"); 
        } else { 
         // show message 
         MessageToast.show(data.Message); 

        } 
       }, 

答えて

0

は、ブラウザでこれを行うには、あなたがところでbrowserify

のようなツールとそれを埋め込んだ後、data.messageはbleachようNodeJSモジュールを使用してフィルタリングすることができます:MessageToast.show(data.Message);はすべきあなたが両方の支店でそれを呼び出すとき、if/elseの外にいてください。

0

EDIT:このことをもう一度考えて、このエスケープシーケンス内でどの文字が実際に処理されるかを実際の入力でテストする必要があります。彼らはスクリプトとHTMLの記述について話していますが、これには「>」よりも多くの文字が含まれているかどうかもはや分かりません。 '<'

https://sapui5.netweaver.ondemand.com/sdk/#docs/guide/4de64e2e191f4a7297d4fd2d1e233a2d.html

クロスサイトスクリプティング(XSS)は ブラウザで実行されるアプリケーションページにスクリプトコードを挿入することが可能 ないことを保証することによって防止することができます。

コントロールは、 アプリケーションから、または別のユーザーによって保存されたビジネスデータからのページにスクリプトを書き込むことを禁止する必要があります。この を確実にするために、次の2回の測定値を組み合わせなければならない:型付き制御特性の

検証

SAPUI5コアは、プロパティのタイプに対するアプリケーション によって設定されたプロパティの値を検証します。これにより、intが は常にintになり、sap.ui.core/CSSSizeは というCSSサイズを表す文字列であり、スクリプトタグは含まれません。これは、 列挙型および制御IDにも当てはまります。コントロールレンダラーは、HTMLを記述するときにこの チェックに依存することができます。 この ウェイに入力されたプロパティ値は、をエスケープしなくても書き込むことができます。

コントロールの開発者をエスケープ

は、その文字列コントロールのプロパティと 他の値は、アプリケーションから来て、十分に収容されている ルールアウトのスクリプトタグに入力されたていないことを確認しなければならない HTMLに書かれたときにエスケープされます。このため、RenderManagerおよびSAPUI5コアはヘルパー メソッドを提供します。

関連する問題