None 확인 전 역참조

None 확인 전 역참조

설명

요청 파라미터에서 .get()으로 가져온 값은 없을 때 None일 수 있습니다. 이를 확인하지 않고 메서드 호출이나 길이 계산에 사용하면 예외가 발생합니다.

잠재적 영향

  • 필수 파라미터 생략으로 서비스 오류나 거부 상태가 발생할 수 있습니다.
  • 디버그 설정과 결합되면 내부 정보가 노출될 수 있습니다.

해결 방법

  • .get() 결과를 사용하기 전에 is not None 또는 기본값으로 확인합니다.
  • 필수 요청 값은 프레임워크 검증 계층에서 선언합니다.

예시

아래 코드는 요청을 처리하는 함수 내부의 일부입니다.

변경 전

python
filename = request.POST.get("filename")
return filename.count(".")

변경 후

python
filename = request.POST.get("filename")
if filename is not None:
    return filename.count(".")
return 0

설명:

  • 변경 전: request.POST.get()처럼 값이 없으면 None을 반환할 수 있는 입력을 검사하지 않고 메서드 호출, 속성 접근, 길이 계산에 사용하면 예외가 발생합니다.
  • 변경 후: .get() 결과를 사용하기 전에 is not None 또는 기본값으로 확인합니다.

참조