728x90
반응형

"FINDBUGS The application mixes trusted and untrusted data in session attributes." 라는 메시지는 어플리케이션에서 신뢰할 수 있는 데이터와 신뢰할 수 없는 데이터를 세션 속성에 혼합하고 있음을 의미합니다.

 

이는 보안 위험을 초래할 수 있습니다. 신뢰할 수 없는 데이터는 악의적인 사용자가 입력한 데이터나, 악성코드에 의해 조작된 데이터 등을 포함할 수 있습니다. 이러한 데이터를 신뢰할 수 있는 데이터와 함께 세션 속성에 저장하면, 악의적인 사용자가 악용할 수 있습니다.

 

따라서, 이러한 메시지를 받은 경우에는 신뢰할 수 없는 데이터와 신뢰할 수 있는 데이터를 구분하여 저장하는 것이 좋습니다.

1. 세션 속성에 신뢰할 수 없는 데이터를 저장하지 마십시오.
세션 속성은 애플리케이션의 상태를 저장하는 데 사용되며, 이 상태는 클라이언트와 서버 간에 공유됩니다. 따라서 세션 속성에는 신뢰할 수 없는 데이터를 저장하지 마십시오. 신뢰할 수 없는 데이터는 클라이언트에서 제공되거나 외부에서 유입된 데이터를 의미합니다.

예를 들어, 사용자 이름, 비밀번호, 신용카드 정보 등과 같은 민감한 데이터는 세션 속성에 저장하지 마십시오. 이러한 데이터는 신뢰할 수 없으며, 해커가 가로채거나 조작할 수 있습니다.

2. 세션 속성에 저장된 데이터를 검증하십시오.
세션 속성에 저장된 데이터는 검증해야 합니다. 검증은 데이터의 유효성을 검사하는 것을 의미합니다. 예를 들어, 사용자 이름은 존재하는 사용자의 이름인지 확인해야 합니다. 비밀번호는 올바른 형식인지 확인해야 합니다. 신용카드 정보는 유효한 신용카드 정보인지 확인해야 합니다.

데이터를 검증하면 해커가 위조된 데이터를 사용하여 애플리케이션을 공격하는 것을 방지할 수 있습니다.

3. 세션 속성에 저장된 데이터를 암호화하십시오.
세션 속성에 저장된 데이터를 암호화하면 해커가 데이터를 읽거나 수정할 수 없게 됩니다. 암호화는 데이터를 해독할 수 있는 키를 사용하여 데이터를 변환하는 것을 의미합니다.

암호화는 세션 속성에 저장된 민감한 데이터를 보호하는 데 매우 효과적인 방법입니다.

이러한 조치를 취하면 FINDBUGS에서 발견된 오류를 해결하고 애플리케이션의 보안을 강화할 수 있습니다.

 

반응형

해결 방법 예시

if(userName.matches("[0-9a-zA-Z_]+")
     session.setAttribute(Constant.USERNAME, userName);

 

728x90
반응형

BELATED ARTICLES

more