2012-11-20 2 views
0

사용자 점수를 mysql 테이블에 보내는 Java 응용 프로그램이 있습니다. 사용자가 완료되면 Java 응용 프로그램이 서버의 .php 파일에 액세스하고 .php 서버가 데이터베이스에서 쿼리를 수행합니다 (점수 삽입).서버에서 PHP 파일에 대한 액세스 권한을 Java 앱에만 어떻게 제한 할 수 있습니까?

나는이 방법의 보안에 우려하고있다. 누군가가 서버상의 .php에 대한 직접적인 URL을 발견하면 데이터베이스에서 많은 엉망이 생길 수 있습니다. .php가 Java 애플리케이션이 액세스하는 것 외의 다른 쿼리를 실행하지 못하도록하는 방법을 조언 할 수 있습니까?

편집 : 문제는 Java 응용 프로그램이 서버에서 실행되지 않으며 Java Web Launcher 플랫폼을 사용하여 사용자 컴퓨터에서 실행된다는 것입니다. 그래서 애플릿이 아닙니다 ...

+2

Java 응용 프로그램에서 데이터베이스 쿼리를 실행하지 않는 이유는 무엇입니까? – Carsten

+0

자바 앱이 실행되는 사용자에게 올바른 권한을 설정하는 것이 좋습니다. 나는 당신이 리눅스를 사용하고 있다고 가정한다. –

+0

분명한 질문은 Java 응용 프로그램이 PHP 서버와 동일한 서버에서 실행되고 있습니까? – h00ligan

답변

0

문제는 개념적입니다. 사용자가 실제 주소를 알 수 없도록해야합니다 (모호한 보안). 당신은 SSL을 사용할 수 있지만 여전히 좋은 추측에 반하는 수단은 아닙니다.

Java 프로그램이 클라이언트 측에서 실행되므로 특정 IP에 대한 액세스를 제한하는 .htaccess도 옵션이 아닙니다.

내 제안은 mysql에서 별도의 사용자를 만들고,이 사용자에게 필요한 테이블에만 액세스 권한을 부여하고 Java에서 직접이 사용자 대신 데이터베이스 쿼리를 수행하는 것입니다. 이렇게하면 모든 데이터가 암호화되고 URL/액세스 지점이 노출되지 않습니다 (http://dev.mysql.com/doc/refman/5.5/en/ssl-connections.html 참조). 물론 MySQL 서버가 외부에서 접근 할 수 있어야 위험을 감수해야합니다. 좋은 루트 암호가 있어야합니다!

관련 문제