2013-07-02 2 views
0

Java 언어를 사용하여 컴퓨터에서 원격 작업을 수행하는 응용 프로그램을 만들고 싶습니다. 정보를 확인하고자하는 데이터베이스가 있습니다. 클라이언트에서 MySQL 데이터베이스에 연결하는 것이 안전한지 확실하지 않습니다.클라이언트 응용 프로그램에서 MySQL 쿼리

나는 다음과 같은 해결책을 생각 할 수있었습니다 :

  1. 연결 대와 클라이언트
  2. 요청 PHP 스크립트가 서버
에게 질의와 웹 페이지에서 데이터베이스를 쿼리

어떤 방법이 더 좋을까요? 또한 사용자가 어떻게 든 Java 클라이언트에서 MySQL 자격 증명을 볼 수 있습니까?

답변

1

음, 그렇게 안전하지 않습니다.

응용 프로그램에 데이터베이스 자격 증명을 저장해야합니다. Java 응용 프로그램은 decompilable입니다. 즉, 누군가가 응용 프로그램을 디 컴파일하면 데이터베이스에 자유롭게 액세스 할 수 있습니다.

내 의견으로는, PHP 브리지를 통해 데이터베이스를 쿼리하는 것이 더 좋으며 데이터베이스에서 수행 할 수있는 작업을 제한 할 수 있으며 호스팅 제공 업체가 서버에없는 클라이언트 (예 : 호스팅 제공 업체는 동일한 서버에서 실행되는 PHP 스크립트에만 액세스 할 수 있습니다.) PHP 브리지를 사용하면 항상 db를 쿼리 할 수 ​​있습니다.

+1

모든 것을 디 컴파일/디스 어셈블 할 수 있습니다. 모든 것이 학대 당할 수 있습니다. 그것을하고 싶어하는 누군가 그것을 할 것입니다. – bash0r

+1

@ bash0r 전체 답을 읽으십시오. 내 말은 Java와 데이터베이스 사이의 "다리"로 사용되는 PHP 파일에 자격 증명을 저장하는 것이 응용 프로그램 자체에 저장하는 것보다 안전하다는 의미입니다. 디 컴파일 된 경우에도 응용 프로그램은 데이터베이스 자격 증명을 표시하지 않습니다. – BackSlash

+0

나는 다른 것을 말하지 않았다. 나는 그저 모든 것이 보안 문제라고 말하고 싶었다. – bash0r

0

생각하는 것이 좋다고 생각합니다. PHP 페이지 또는 서블릿이나 웹 서비스 또는 웹 페이지에 액세스하여 데이터에 직접 액세스하는 응용 프로그램 대신 데이터를 반환하는 경우 다른 보안 계층을 추가 할 것입니다.

기억해야 할 또 다른 사항은 솔루션에 사용 된 데이터베이스 계정에 반환하려는 데이터에 액세스하는 데 필요한 최소한의 보안을 제공하는 것입니다. 이렇게하면 보안의 여러 레이어가 있습니다.

0

웹 서비스를 구현하고 해당 서비스를 통해 데이터를 반환하는 것이 좋습니다.

관련 문제