ABAP和Java里的单例模式攻击

  • 时间:
  • 浏览:0
  • 来源:大发快3计划—大发一分彩

Exception in thread "main" java.lang.NoSuchMethodException: singleton.JerrySingletonAnotherApproach.()

很多单例模式的消费代码:

执行事先,在调试器里发现lo_instance和lo_instance2指向了一十个 多不同的对象实例,说明此时很多ABAP单例模式事先被破坏了。

面向对象编程世界里的单例模式(Singleton)事先是设计模式里最简单的一种生活,大多数开发人员都虽然还都能否很容易掌握它的用法。单例模式保证一十个 多类仅一十个 多多实例,并提供一十个 多访问它的全局访问点。

代码的第三行,很多ABAP类实现了接口if_serializable_object,这意味它还都能否被关键字CALL TRANSFORMATION进行序列化和反序列化操作。

此时别有用心的攻击者事先想使用反射机制创建新的实例,会收到下面的报错信息:

然而在很多场景下,很多设计模式的单例特征会被破坏,看下面很多例子:

然而大家仍然还都能否通过Java的反射机制来破坏很多单例:

再看看Java,下面是一十个 多最简单的Java单例模式:

使用下面的ABAP代码:

在Java里,大家还都能否通过枚举类来防御很多反射攻击:

本文来自云栖社区合作伙伴“汪子熙”,了解相关信息还都能否关注微信公众号"汪子熙"。