2013-06-25 5 views
0

희망이 질문에 나는 내 사이트의 사용자가 자선 단체에 기부 할 수 있도록하기 위해 The Giving Lab API을 구현하려고 해요안전하게

... 너무 순진하지 않다.

사용하여이 URL을 같은 : 사용자가 기부 페이지로 이동 한 후 기증이 이루어진 후 returnURL에 반환

https://www.thegivinglab.org/api/donation/start?donationtype=0&amount=10&charityid=84ed3c54-6d8c-41c5-8090-f8ec800f45a7&returnurl=mywebsite.com/

.

성공적으로 결제를 완료하면 사용자가 내 데이터베이스에 기부 한 금액을 추가 할 수 있기를 원합니다. returnURL을 사용하여이 작업을 수행 할 수 있습니까? 즉, returnURL을 mywebsite.com? q="amount_donated 형식으로 사용하고 데이터베이스를 업데이트 할 때 사용할 수 있습니까?

누군가가 내 브라우저에 returnURL을 입력하여 데이터베이스를 업데이트 할 수 있음을 알 수 있습니다.

이 문제를 제거하는 일반적으로 더 좋은 방법이 있습니까?

감사합니다.

답변

1

네덜란드 은행은 SHA-기호라는 것을 사용 (그들은 probally 처음 아니에요)

은 당신이해야 할 모든 만이 알 수있는 키 추가 할 수 있습니다 :

function makeSecureCode($var1, $var2){ 
    $secretCode = 'example'; 
    $secretKey = ''; 
    $secretKey.= $var1 . $secretCode; 
    $secretKey.= $var2 . $secretCode; 

    return sha1($secretKey); 
} 

을 다음과 같이 URL을 만들 :이 var1 = foo는 & VAR2 = 바 & 키 = 5e8b73da0b20481c1b4a285fb756958e4faa7ff1

그리고 당신이 지불 후 코드를 처리 할 때, makeSecureCode ($ _GET [ 'var1에'], $ _GET [ 'VAR2']) $ _GET [ 'key']와 같아야합니다. 그렇지 않은 경우 누군가 변경했습니다.

이것은 두 개의 바가있는 단순한 버전입니다. 더 많은 입력 인수 또는 배열을 원하는대로 만들 수 있습니다.

관련 문제