0

현재 MEAN 스택을 사용하여 사용자 정의 CMS 시스템을 구축 중입니다. 또한 백엔드 웹 기반 관리 패널을 원하지만 가능한 한 보안을 유지하기를 원합니다. 과거에는 PHP 기반 스크립트를 만들었을 때 간단히 사용자가 로그인 페이지가 표시되고 CMS에서 관리 기능을 사용하도록 허용하는 /admin 경로를 만들었습니다. 그러나 웹 서버 액세스 로그를 분석하여 일반적인 관리 경로 (예 : /wp-admin 또는 /administration)와 심지어 내 웹에서 많은 트래픽이 발생하지 않은 경우에도 내 이름이 /admin 인 wannabe 해커로부터 요청을 많이 받았습니다.맞춤 cms에 대한 관리자 패널 보안을위한 모범 사례?

저는 이번에는 다른 접근 방식을 사용하고 있습니다. 특별히 관리 목적으로 별도의 노드 응용 프로그램을 설정하고 완전히 다른 포트 (예 : 2123)에 배치 한 다음 서버의 방화벽을 설정하여 특정 ip 블록을 사용하여 해당 포트에 액세스합니다. 이렇게하면 공격자가 웹 서버에서 포트 스캔을 수행하더라도 기본 포트 80 및 443 만 볼 수 있습니다. 내 응용 프로그램을 안전하게 유지하기위한 좋은 해결책입니까 아니면 더 좋은 접근 방법이 있습니까?

+0

나는 이것에 대해서도 관심이 있지만, 특정 질문보다는 의견에 잠겨 있다고 생각한다. – Ted

답변

0

설정하여 VPN 및 원격 사용자가 VPN 연결 확인 만 관리자 패널

로컬 네트워크 액세스를 허용 또는 웹 서버

당신의 IP 제한 아이디어의 앞에 ModSecurity를 ​​같은 웹 애플리케이션 방화벽을 넣어 그래도 나쁜 것은 아닙니다.

0

다른 출처 (원본이되는 프로토콜 + 도메인 + 포트)에서 관리 인터페이스를 제공하는 것이 실제로 최선의 방법입니다. 한 가지 이유는 언급 한 바와 같이 별도의 네트워크 수준 보호를 구현할 수 있다는 것입니다. 예를 들어 IP 주소로 클라이언트를 제한 할 수 있습니다.

또 다른 이유는이 방법으로 기본 앱과 관리 앱이 브라우저에서 동일한 원산지 정책으로 분리되기 때문입니다. 다른 출처에서 오면 쿠키 (세션)를 공유하지 않으며 broswer stores (localStorage 등)는 분리됩니다. 예를 들어이 두 앱이 동일한 프로토콜, 도메인 및 포트에있는 경우 기본 앱에있는 하나의 XSS를 사용하여 관리 데이터 또는 기능에 액세스 할 수 있습니다. 이는 다른 출처가 아닌 경우입니다.