잘못된 http_host 헤더


109

Django 프레임 워크를 사용하여 웹 사이트를 개발하고 DigitalOcean.com을 사용하여 시작하고 필요한 파일을 django-project에 배포했습니다.

Django-project에 정적 파일을 포함시켜야했고 정적 파일을 수집 한 후 IP를 새로 고치려고했습니다.

웹 사이트를 만드는 데 사용한 튜토리얼을 포함하고 있습니다. https://www.pythonprogramming.net/django-web-server-publish-tutorial/

다음과 같은 오류가 발생합니다.

DisallowedHost at / 잘못된 HTTP_HOST 헤더 : '198.211.99.20'. ALLOWED_HOSTS에 u'198.211.99.20 '을 추가해야 할 수도 있습니다.

누군가이 문제를 해결하도록 도울 수 있습니까? 이것은 Django 프레임 워크를 사용하는 첫 번째 웹 사이트입니다.


DigitalOcean의 유동 IP 주소 일 수도 있습니다.
Poopy McFartnoise

답변:


184

오류 로그는 간단합니다. 제안한 대로 설정 에 198.211.99.20 을 추가 해야 ALLOWED_HOSTS합니다.

프로젝트 settings.py 파일에서 다음 ALLOWED_HOSTS과 같이 설정하십시오 .

ALLOWED_HOSTS = ['198.211.99.20', 'localhost', '127.0.0.1']

자세한 내용은 여기에서 읽으십시오.


이제 다음 오류 요청 URL이 표시됩니다. 198.211.99.20 예외 유형 : TemplateDoesNotExist 예외 값 : personal / home.html 예외 위치 : /usr/local/lib/python2.7/dist-packages/django/temp‌ late / loader.py get_template에서, 라인 (25) 나는 다음과 같은 폴더에 내 템플릿이 / 홈 / 장고 / django_project / 개인 / 템플릿 / 개인
Kathiravan Natarajan를

@Kathir 그 오류의 많은 예가 있습니다. 그냥 구글링하고 문제가 계속되면 별도의 질문으로 질문하십시오. 댓글은 그다지 설명 적이 지 않습니다.
Prakhar Trivedi

이것은 확실히 작동하지만 당신은 항상 .env의 파일을 사용해야합니다으로 나쁜 관행입니다
Abhishek Jebaraj

@AbhishekJebaraj 좀 더 설명해 주시거나 더 많은 설명이있는 링크를 공유해 주시겠습니까?
예수 Almaral - Hackaprende

1
@JesusAlmaral .env 파일은 암호 및 기타 중요한 정보가 포함 된 로컬 파일입니다. 이 모든 민감한 정보를 코드 자체에 넣으면 손상 될 수 있습니다. 따라서 우리는 로컬로 자신의 비밀번호 등이 로컬 파일 .env를 모두 저장소를 사용
Abhishek Jebaraj

0

settings.py

ALLOWED_HOSTS = ['*']

2
pydanny가 말했듯이 "...이 사실을 알게되면 그대로 두지 마십시오. 그 이유는 Django를 HTTP_HOST 헤더 공격에 잠재적으로 취약하게 만들기 때문입니다. 그리고 자동화 된 스크립트는 사이트에이 취약점이 있는지 확인하기 위해 인터넷을 조사합니다." github.com/pydanny/cookiecutter-django/issues/…
javidazac

6
Lol, 그것은 개발 환경을위한 것입니다. 프로덕션에서는 DEBUG = False 만 설정하면됩니다.
George Poliovei

4
프로덕션에 '*'를 사용하지 않으려 고합니다. 이것은 허용 된 호스트의 이유와 보안을 완전히 우회합니다.
Andy Poquette 2018 년

@radtek - 잘못된 settings.py를 편집 한 디렉토리 더 깊게
birdmw
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.