# 요청에서 코드 파일 경로 추출
code_path = request.code_path
# 코드 파일 읽기 시도
try:
with open(code_path, "r", encoding="utf-8") as f:
code = f.read()
except Exception as e:
# 파일 읽기 실패 시 오류 메시지 반환
return agents_pb2.CodeResponse(summary=f"[Quick] 파일 읽기 오류: {e}")
# 발견된 위험 패턴을 저장할 리스트
patterns = []
# 문자열 검색으로 위험한 패턴 탐지
# eval() 함수 사용 여부 확인 (임의 코드 실행 위험)
if "eval(" in code:
patterns.append("eval() 사용")
# exec() 함수 사용 여부 확인 (임의 코드 실행 위험)
if "exec(" in code:
patterns.append("exec() 사용")
# os.system() 함수 사용 여부 확인 (명령 주입 위험)
if "os.system(" in code:
patterns.append("os.system() 사용")
if not patterns:
# 발견된 패턴이 없는 경우
summary = "[Quick] 특이 패턴 발견되지 않음."
else:
# 발견된 패턴들을 쉼표로 구분하여 요약 생성
summary = "[Quick] 잠재적 위험 패턴: " + ", ".join(patterns)
# CodeResponse 객체를 생성하여 반환
return agents_pb2.CodeResponse(summary=summary)