码迷,mamicode.com
首页 > 其他好文 > 详细

枚举类常见漏洞解决

时间:2020-07-24 15:44:37      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:情况下   常量   lan   count   int   and   public   理想   攻击   

枚举通常被认为是常量,但是具有公共字段或公共setter的枚举不仅是非常量,而且容易受到恶意代码的攻击。理想情况下,枚举中的字段是私有的,并在构造函数中设置,但如果不能这样做,则应该尽可能降低它们的可见性。

不合规的代码示例

public enum Continent {

  NORTH_AMERICA (23, 24709000),
  // ...
  EUROPE (50, 39310000);

  public int countryCount;  // Noncompliant
  private int landMass;

  Continent(int countryCount, int landMass) {
    // ...
  }

  public void setLandMass(int landMass) {  // Noncompliant
    this.landMass = landMass;
  }

合规的代码示例

public enum Continent {

  NORTH_AMERICA (23, 24709000),
  // ...
  EUROPE (50, 39310000);

  private int countryCount;
  private int landMass;

  Continent(int countryCount, int landMass) {
    // ...
  }

因此我们在构建枚举类的时候尽量不要构建setter方法,因为这样会带来一系列的安全隐患。

枚举类常见漏洞解决

标签:情况下   常量   lan   count   int   and   public   理想   攻击   

原文地址:https://www.cnblogs.com/agoodmanisme/p/13371183.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!