2011-11-16 2 views
1

내 웹 사이트에서 MySql 데이터베이스를 호스팅하고 있습니다. 테이블은 입니다. UsrLic 누구든지 내 소프트웨어를 구입하고 싶다면 등록 된 기계 키 (+ username, email ...)를 등록하고 입력해야합니다. .사용자가 온라인으로 내 제품을 등록하도록하려면 어떻게합니까?

그래서 제 질문은 :

내 소프트웨어에서이 프로세스를 자동화하려는,이 프로세스는 어떻게 될 것인가? 소프트웨어에서 데이터베이스를 직접 연결하고 업데이트해야합니까? (즉, 내 데이터베이스 사용자 이름, 암호, 서버 *에 내 데이터베이스 연결 매개 변수를 모두 저장 한 다음 ADO 또는 MyDac을 사용하여이 데이터베이스에 연결해야 함) 어떻게 안전한 것은이 과정인가?

또는 다른 제안.

답변

5

내가 PHP에서 웹 사이트에 API를 작성하고 델파이에서 API를 호출하는 것이 좋습니다.

그런 식으로, 데이터베이스 만 사용할 수 있습니다 사실, 당신은 로컬 호스트 나 사설 IP로 데이터베이스를 실행해야 동일한 phys에있는 머신들만이 실행되도록해야합니다 ical 네트워크가 도달 할 수 있습니다.

저는 이것을 구현했으며 우리가 말한대로 다시 구현하고 있습니다.

PHP

는 register_config.php라는 이름의 새 파일을 만듭니다. 이 파일에서 MySQL 연결 정보를 설정하십시오.

register.php라는 파일을 만듭니다. 이 파일에 등록 기능을 넣으십시오. 이 파일에서 'register_config.php'를 포함하십시오. 여기에서 작성한 함수에 매개 변수를 전달하면 데이터베이스에 읽고 쓰는 작업을 수행합니다.

register_api.php라는 파일을 만듭니다. 이 파일에서 'register.php'를 포함하십시오. 여기에서는 클라이언트 애플리케이션에서 보낸 POST 또는 GET 변수를 처리하고 register.php에서 함수를 호출하고 결과를 HTTP를 통해 모두 클라이언트로 리턴합니다.

MySQL 데이터베이스에 연결하고 쿼리해야합니다. W3Schools tutorials에서이 작업을 매우 빠르게 처리하게됩니다.

예를 들어

:

귀하의 델파이 프로그램은 포스트 (와 https://mysite/register_api.php를 호출) 다음과 같은 값을 보냅니다

여기
name=Marcus 
[email protected] 

이 register_api.php의 시작 부분이 보일 수 있습니다 방법은 다음과 같습니다

// Our actual database and registration functions are in this library 
include 'register.php'; 

// These are the name value pairs sent via POST from the client 
$name = $_POST['name']; 
$email = $_POST['email']; 

// Sanitize and validate the input here... 

// Register them in the DB by calling my function in register.php 
if registerBuyer($name, $email) { 
    // Let them know we succeeded 
    echo "OK"; 
} else { 
    // Let them know we failed 
    echo "ERROR"; 
} 

델파이

Indy의 TIdHTTP 구성 요소와 Post() 또는 Get() 메서드를 사용하여 웹 사이트의 register_api.php에 데이터를 게시하십시오.

API의 텍스트로 응답을 받게됩니다.

간단하게 유지하십시오.

보안은

모든 검증은 서버 (API)에서 수행되어야한다. 서버는 게이트 키퍼 여야합니다.

함수 (특히 쿼리)를 호출하기 전에 사용자 (클라이언트)의 API에 대한 모든 입력을 살균하십시오.

공유 웹 호스팅을 사용하는 경우 register.php 및 register_config.php를 전세계에서 읽을 수 없도록 설정해야합니다.

민감한 정보를 전달하고있는 것처럼 들리는 경우 HTTPS를 통한 Delphi의 등록 API 함수를 호출해야합니다. HTTPS는 종단 간 보호 기능을 제공하므로 아무도 데이터를 철저하게 차단할 수 없습니다.

TIdHTTP 구성 요소에 TIdSSLIOHandlerSocketOpenSSL 구성 요소를 연결하기 만하면됩니다. 인증서 확인을 뺀 것이 좋습니다.

SSL 구성 요소의 OnVerifyPeer 이벤트를 사용하여 고유 한 인증서 확인 방법을 작성하십시오. 이건 중요하다. 서버 측 인증서를 확인하지 않으면 다른 사이트에서 DNS 중독으로 가장하여 자신 대신 사용자로부터 데이터를 수집 할 수 있습니다. 이것이 중요하지만, 조금 더 이해가 필요하기 때문에 이것을 잡아 두지 마십시오. 향후 버전에서 추가하십시오.

+1

PHP에 있지만 PHP에는 없지만 API는 있습니다. 어쩌면 델파이에서 웹 서비스를 구축 할 수 있을까요? – GolezTrol

+0

설명해 주시겠습니까, 아니면 약간의 샘플이 나올 수 있도록 도와 주시겠습니까 – randydom

+0

Marcus Adams 감사합니다. 작동 샘플을 제공해주세요. – randydom

2

왜 사용하지 않습니까? 그것을 공유합니까? 그들은 또한 구매 프로세스를 처리합니다. (나는 당신이 이것을 어떻게 할 것인지를 보지 못합니다.) 델파이 앱을 통해 reg 키를 만들 수 있습니다.

관련 문제