2009-03-18 3 views
2

인터넷에 배포 할 수 있도록 설계된 Java 웹 응용 프로그램이 있습니다. 데이터베이스 연결이 필요합니다. 호스팅 환경에 따라 웹 응용 프로그램의 배포자가 적절한 데이터 소스를 구성 할 수 없으므로 응용 프로그램을 다시 시작하면 다시로드 할 수 있도록 데이터베이스 연결 정보를 저장해야합니다.웹 응용 프로그램의 초기 구성을 수행하기위한 좋은 패턴은 무엇입니까?

또한 한 명의 사용자에게 관리자 권한을 부여해야합니다. 이것이 처음 생성 된 사용자 계정 일 경우 응용 프로그램이 배포 된 시간과 설치 프로그램이 로그인하는 시간 사이에 관리자 계정이 도용 될 가능성이 적습니다.

이 두 가지 작업을 모두 수행해야합니다. 작업을 웹 응용 프로그램의 가장 낮은 공통 분모 인 방식으로 안전하게 수행 할 수 있습니다.

설명 : 처음 사용할 때 응용 프로그램에서 관리자를 설정해야합니다. 해당 관리 사용자는 시스템에 모든 보안 액세스 권한을 갖습니다. 어떻게 든 그 사용자가 무엇인지 그리고 그들의 암호가 무엇인지 결정할 필요가 있습니다. 응용 프로그램이 공유 웹 호스트에 배포되면 응용 프로그램은 배포 된 시점부터 실시간으로 라이브 상태가됩니다. 웹 인터페이스를 통해 사이트를 구성하도록 허용하면 사이트 소유자가 사이트를 효과적으로 가로 채기 전에 권한이없는 사람이 웹 구성을 수행 할 가능성이 적습니다. 나는 이것을 피하기위한 우아한 방법을 찾고있다.

답변

1

확인은

정말 많이 할 수 없다 ... 수정 된 질문에 대답합니다. 관리자가 서버에 설치하는 동안 관리자가 계정을 구성하는 것을 원하지 않으면 항상 다른 사람이 웹을 통해 만들 수있는 작은 창이 나타날 것입니다.

모든 솔루션은 서버에서 무언가를 수정하는 것과 관련이 있습니다 (이것이 실제 관리자임을 입증하는 방법입니다). 네,이 ... 연결 첫번째시

  • 을 설정 파일을 의미 할 수있다, 사용자에게 토큰을 제공합니다. 기본적으로 일부 salt + theirIP + theirUserAgent 등의 해시입니다. 그런 다음 서버에 에 로그인하고이 토큰을 앱 ( )에 설정 파일로 제공하도록 요청합니다.다음 번에 생성 된 토큰이 구성과 일치하면 으로 진행하십시오.

  • 간단한 해결책은 설정에 의 IP 주소를 시작 부분에 넣고이 IP를 허용하게하는 것입니다.

  • 는 또한, 계정 작성을 허용하지만, 일부 파일이 서버에서 제거 될 때까지 다른 어떤 을 거부 (그들은 자신의 IP 주소가 무엇인지 가정). 많은 PHP 애플 리케이션은 을 install.php로 처리하지만, 파일은 테스트 할 수있는 모든 것이 될 수 있습니다.

0

가장 일반적인 방법은 정적 구성 파일을 사용하는 간단한 텍스트 형식입니다.

파일은 응용 프로그램과 동일한 시스템에 있으며 코드와 마찬가지로 안전해야합니다 (예 : 다른 사람이 구성을 수정할 수있는 권한이있는 경우, 코드를 수정 하시겠습니까?)

+0

나는 이것에 대해 생각했지만 웹 응용 프로그램처럼 보이지 않았다. 이 파일은 필 요에 따라 웹 응용 프로그램 외부에 저장해야하며 웹 호스트에서 허용되는 문제가 재생되도록해야합니다. –

0

Java 웹 응용 프로그램 중 하나 인 경우 우리는 Spring 종속성 주입을 사용하여 대부분의 응용 프로그램을 구성합니다. 구성 가능한 모든 속성이 공개 된 "구성"클래스를 만들면 Spring XML 컨텍스트 파일을 통해 구성된 Java에서 빈을 연결시킬 수 있습니다. 그런 다음 서로 다른 환경에 맞는 서로 다른 버전의 XML 파일을 만들 수 있으며, 특정 패키지에 자동으로 빌드되도록 만들어 모든 패키지를 한꺼번에 배포 할 수 있습니다. 모두 나가기를 원한다면 기본적으로 Spring을 사용하여 애플리케이션의 모든 단일 클래스를 구성 할 수 있습니다. 이는 정말 유용합니다.

Spring 설정을 얻는 데 약간의 오버 헤드가 있지만 실제로 너무 어렵지는 않습니다. 많은 튜토리얼이 있습니다.

+0

앱에 이미 많은 스프링이 있지만 제 3 자 호스트에 배포가 가능하도록 계획되어 있으며 배치하기 전에 전쟁을 재구성하는 것보다는 전쟁을 전개하는 것이 좋을 것입니다. –

관련 문제