該程序違反了移動代碼的安全編碼原則,它聲明了成員變量 public,而不是 final。
在 Applet 及其所使用的類中,所有 public 的成員變量都應聲明 final,以防止攻擊者未經授權,操縱或獲取對 Applet 內部狀態的訪問權。
例 1:以下 Java Applet 代碼錯誤地聲明了成員變量 public,而不是 final。
public final class urlTool extends Applet {
public URL url;
...
}
[1] Standards Mapping - Common Weakness Enumeration - (CWE) CWE ID 493
[2] G. McGraw Securing Java.Chapter 7:Java Security Guidelines