디스코드 봇은 실행 시 토큰이 필요하므로 호스팅에 토큰이 올라가야 하고, 토큰 노출 시 봇 계정 탈취 등의 보안 위험이 있습니다.
하드코딩 대신 환경 변수(.env)나 호스팅의 시크릿 스토어를 사용하고 신뢰할 수 있는 IaaS 선택, 정기적 토큰 로테이션 및 개발자 계정 보안 관리를 병행하세요.
디스코드 봇은 실행 시 토큰이 필요하므로 호스팅에 토큰이 올라가야 하고, 토큰 노출 시 봇 계정 탈취 등의 보안 위험이 있습니다.
하드코딩 대신 환경 변수(.env)나 호스팅의 시크릿 스토어를 사용하고 신뢰할 수 있는 IaaS 선택, 정기적 토큰 로테이션 및 개발자 계정 보안 관리를 병행하세요.
다름이 아니라 봇 제작 후 호스팅을 위해 파일을 업로드했을때 config.json에 들어가는 토큰이 없어도 봇이 정상적으로 작동하는지 궁금합니다. 토큰이 외부에 노출되면 안된다고 들었는데 config를 업로드 하면 토큰이 노출되어 보안 취약이 생긴다고 알고있기 때문에 이 문제를 어떻게 해결하시는지 궁금해서 여쭤봅니다.
보안이 필요하거나 그렇지 않더라도 세팅값을 저장하기 위해 환경 변수를 많이 사용합니다. 리눅스 게열에서 쉘에 변수 선언하는것도 환경 변수라고 하고, 서비스를 운영할 때에는 보통 .env (또는 .env.local 등) 파일을 많이 사용합니다.
env를 프로세스에 포함시키시고 process.env.<VAR_NAME> 형태로 불러오시거나, dotenv같이 라이브러리를 사용해서 불러오기도 합니다.
.env를 쓰든 하드코딩하든 업로드하는건 마찬가지입니다 그래서 호스팅 서비스를 믿고 그냥 업로드하거나 직접 호스팅 하거나 Api로 불러오는 방법이 있겠네요 (99%의 사람들은 그냥 믿고 씁니다)
사실 디스코드는
어느정도 공개적인 장소의 토큰에 대한 방어 장치가 잘 되어있기 때문에
본인이 대놓고 공개적인 장소에 업로드하는 것이 아니라면 대부분 문제가 되지는 않습니다
결국 토큰값이 있어야 작동하는 봇 시스템들은 호스팅 서비스에 업로드 하였을 경우 발생할 보안취약을 각오하더라도 토큰값이 업로드가 되어있어야하는것이군요
어느정도 그렇습니다
호스팅 서비스가 털리면 같이 털립니다
DB도 마찬가지로 털립니다