<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            Unsafe Mobile Code: Inner Class

            ABSTRACT

            該程序違反了移動代碼的安全編碼原則,它使用了一個 inner class。

            EXPLANATION

            Inner class 轉換為 Java 字節碼所采用的方式,導致它會悄然引入一些安全問題。在 Java 源代碼中,inner class 只能由封裝類來聲明它是可以訪問的,但是 Java 字節碼中并沒有 inner class 的概念,因此,編譯器必須把一個內部類聲明轉換成與 package 有同等級別的類(有權訪問源外部類)。由于內部類可以訪問其封裝類中的 private 字段,一旦某個 inner class 成為字節碼中的同等類,該編譯器便會把 inner class 訪問的 private 字段轉換成 protected 字段,這一點具有潛在的危險性。

            例 1:以下 Java Applet 代碼錯誤地使用了 inner class。


            public final class urlTool extends Applet {
            private final class urlHelper {
            ...
            }
            ...
            }


            移動代碼,在本例中也就是 Java Applet,通過網絡進行傳遞并在遠程機器上運行。因為移動代碼的編寫者很難控制其所編寫代碼的運行環境,所以在安全上提出特別的要求理所當然。一個最大的環境威脅在于,移動代碼可以伴隨其他潛在的惡意移動代碼一起運行。因為所有的主流 web 瀏覽器會在同一 JVM 中執行來自多個來源的代碼,所以,許多移動代碼的安全指導原則都很關注可以訪問到運行著您程序的同一虛擬機的攻擊者,避免他們操縱您的對象的狀態和行為。

            REFERENCES

            [1] Standards Mapping - Common Weakness Enumeration - (CWE) CWE ID 492

            [2] G. McGraw Securing Java.Chapter 7:Java Security Guidelines


            Copyright 2013 Fortify Software - All rights reserved.
            (Generated from version 2013.1.1.0008 of the Fortify Secure Coding Rulepacks)
            desc.structural.java.unsafe_mobile_code_inner_class

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线