계: Encapsulation
캡슐화는 강력한 경계를 그리는 것입니다. 웹 브라우저에서는 사용자의 모바일 코드가 다른 모바일 코드에 의해 오용되지 않도록 하는 것을 의미합니다. 서버에서는 검증된 데이터와 검증되지 않은 데이터, 한 사용자의 데이터와 다른 사용자의 데이터, 데이터 사용자가 볼 수 있는 데이터와 볼 수 없는 데이터 간의 차별화를 의미할 수 있습니다.
Poor Style: Non-final Public Static Field
Abstract
비 final public static 필드는 외부 클래스에 의해 변경될 수 있습니다.
Explanation
일반적으로, public 필드가 임의의 외부 클래스에 의해 변경될 수 있으므로 개체의 멤버 필드에 외부 클래스의 직접 접근을 제공하려고 하지 않습니다. 지향적으로 설계된 좋은 개체는 encapsulation을 사용하여 멤버 필드와 같은 구현 세부 정보가 다른 클래스에 노출되는 것을 막습니다. 또한 시스템에서 이 필드를 변경할 수 없다고 보는 경우, 악성 코드는 시스템 동작을 불리하게 변경할 수도 있습니다.
예제 1: 다음 코드에서
이 경우, 악성 코드는 이 오류 코드를 변경하고 프로그램을 예기치 않은 방식으로 동작하게 만들 수도 있습니다.
예제 1: 다음 코드에서
ERROR_CODE
필드가 final이 아니라 public 및 static으로 선언되었습니다.
public class MyClass
{
public static int ERROR_CODE = 100;
//...
}
이 경우, 악성 코드는 이 오류 코드를 변경하고 프로그램을 예기치 않은 방식으로 동작하게 만들 수도 있습니다.
References
desc.structural.java.poor_style_non-final_public_static_field