2014-04-30 5 views
2

Djangowww.example.com/admin과 같이 자동으로 admin url이됩니다. 외부 방문자가이 URL에 액세스하는 것을 원하지 않습니다. 이 주소는 호스트에서만 사용하고 IP address을 사용해야합니다. Django을 사용하여 작성한 https://instagram.com/admin/에 액세스하려고 시도하면 404 page not Found error 어떻게 할 수 있습니까?장고에서 관리자 URL에 대한 액세스를 차단하는 방법?

무엇을 선호하고 올바른 방법입니까?

나는 webfaction에 내 webservice을 호스트하고 호스트의 IP address을 허용한다는 것은 다른 webfaction 계정 소유자가 내가 원하지 않는 관리 URL에 액세스 할 수 있음을 의미합니다.

PS : 깔끔하고 간단한 방법을

감사를 찾고 나는 비슷한 질문이 여기에 게시하지만 그 PHP에 대한 것입니다 참조하십시오. 나는 Django을 사용하여 어떻게 동일하게 할 수 있을까?

+0

관리자 URL 주위에 데코레이터를 만들 수 있습니다. 수동으로 URL을 재생하거나 프로그램 방식으로 http://stackoverflow.com/a/18411661/1345536을 사용합니다. 데코레이터는 허용 된 IP 주소를 확인하거나 404. –

답변

9

Django의 Two Scoops가 옹호하는 일반적인 방법 중 하나는 관리자 URL을 변경하는 것입니다. 따라서 관리자에게 www.example.com/admin/으로 로그인하는 대신 www.example.com/supers3cret4dm1n/ 또는 설정 한 것으로 로그인하십시오. 이것은 Instagram이 당신의 예제에서했던 것과 같습니다.

예제 코드 :이 하나의 IP 주소가 액세스 할 수 있도록 만들하지 않습니다하지만 '숨기기'당신의 관리자 로그인 페이지 효율적으로 수행하는 것이

urlpatterns = patterns('' 
    ... 
    url(r'^supers3cret4dm1n/', include(admin.site.urls)), # Change the pattern to whatever you want here 
    ... 
) 

참고.

또 다른 팁은 django-admin-honeypot 패키지를 사용하는 것입니다. 이렇게하면 가짜 관리 페이지가 www.example.com/admin에 설정되고 실제 관리 페이지는 설정 한 다른 사이트에 있습니다. 그런 다음 django-admin-honeypot이 가짜 관리 사이트에서 관리자를 해킹하려고 시도하면 알려줍니다.

편집 :

당신이 죽은 설정 IP 주소, here's 소위 질문에 의해 제한에있어, nginx를 함께 할 방법을 보여주는 응답 한 경우. 나는 그것이 다른 사람들과 비슷할 것이라고 상상한다.

+0

을 반환 할 수 있습니다. IP 주소가 –

+0

인 놀이터보다는 합리적인 것처럼 보입니다.하지만 여전히 봇이 URL을 크롤링하는 것을 막지는 못합니다. robots.txt에서이를 무시하면 robots 파일을 보는 사람은 누구나 URL을 찾을 수 있습니다. – if237912print

관련 문제