Corrigindo hack de compra no aplicativo; preso no quarto passo
Como muitos de nós sabemos, tem havido uma situação recente com a Apple, onde os hackers são capazes de obter qualquer In-App Purchase gratuitamente. Apple lançou recentementeesse documento descrevendo como consertá-lo, mas estou um pouco confuso no passo 4 e gostaria de receber ajuda.
Os primeiros passos são baixar o patch .h e .m, incluí-lo em seu projeto e vinculá-lo ao framework Security. Ok, bom, entendi. Então a Apple diz:
4. Provide a base64 encoder, a base64 decoder, and the action to perform when validation succeeds.
O que exatamente a parte dos codificadores significa que devo fazer? (A ação a ser executada quando a validação é bem-sucedida é clara para mim.) Eu vejo as funções nomeadasbase64_encode
ebase64_decode
na classe, certamente. Mas o que isso está pedindo? Isso é como um número PIN especial que só eu sei, para evitar hackers? Não tenho certeza do que fazer aqui. Eu obtenho os conceitos gerais de codificação e decodificação, é claro, mas não os detalhes programáticos de como gerar um corretamente nesta situação.
O código como a Apple escreve, se isso ajudar algum:
- (NSString *)encodeBase64:(const uint8_t *)input length:(NSInteger)length
{
#warning Replace this method.
return nil;
}
- (NSString *)decodeBase64:(NSString *)input length:(NSInteger *)length
{
#warning Replace this method.
return nil;
}
#warning Implement this function.
char* base64_encode(const void* buf, size_t size)
{ return NULL; }
#warning Implement this function.
void * base64_decode(const char* s, size_t * data_len)
{ return NULL; }
Eu também estou perplexo que existem 2 funções de codificação e 2 de decodificação. Eu entendo que há um par que retornaNSString*
s, mas por que o segundo par retorna umchar*
e umvoid*
? Quais são essas funções esperadas para retornar? Eu realmente não entendo.