Swiftyinsta: Login do Instagram Ajax

Criado em 14 mai. 2020  ·  27Comentários  ·  Fonte: TheM4hd1/SwiftyInsta

O Instagram acabou de destruir instagram.com/accounts/login/ajax ou é impressão minha?
Eu não consigo fazê-lo funcionar.
😱

Você se importa de testar o processo básico de autenticação?
Porque, infelizmente, uma alternativa exigiria muitas dependências no Swift (já que ele usa hashes e RSA).

@TheM4hd1 @bariscck


Edit: também não funciona no Swiftagram … 😱 eles realmente se livraram dele?

critical

Todos 27 comentários

funcionou para mim, porém não consegui obter o código de desafio do sms, mas funcionou com o email.

Swiftagram BasicAuthenticator.handleSecond retorna invalid response , eu não testei SwiftyInsta .

Também não consigo fazer funcionar no SwiftyInsta 😢 @bariscck
Eu não consigo nem fazer funcionar com Insomnia e Postman… 😱
Espero que seja apenas algum problema temporário no Instagram, o que pode explicar o funcionamento de @TheM4hd1 , estando em diferentes regiões…

Parece temporário, porque o aplicativo da web do Instagram usa esse ponto de extremidade atualmente. Também não funciona para eles. Retorna 400 Bad Request .

o aplicativo da web também funciona para mim, no entanto, lembro-me de cerca de 4 meses atrás, a mesma coisa aconteceu e corrigiu depois de algumas horas.

Sim, aconteceu antes, mas costumávamos receber 400 de volta, o que é razoável.
O acesso direto ganha 405 desta vez. Mesmo com HEAD .
Estou com medo de que eles possam estar migrando para longe dele.
Vamos cruzar os dedos 🤞

Olá, também estou com o mesmo problema, isso é resolvido para você?

Ainda sem solução, infelizmente @Emretelli7.
Sinto que precisamos aceitar que o endpoint acabou 😢

Oi, agora o instagram usa "enc_password" você não pode usar "password"
image
enc_password usa criptografia AES 256 GCM

https://pastebin.com/raw/nYL2W2bG

@xmmti
tentei copiar minha enc_password do burp suite e postá-la com meu nome de usuário, mas fiquei autenticado: false

então significa que eu acho que há algo mais do que isso enc_password

@xmmti
tentei copiar minha enc_password do burp suite e postá-la com meu nome de usuário, mas fiquei autenticado: false

então significa que eu acho que há algo mais do que isso enc_password

Corpo da solicitação
username= Seu nome de usuário &enc_password= enc_password
image
Eu é trabalho comigo...

Sim. É muito mais do que apenas isso. Indico isso na minha primeira nota.
O novo método de autenticação headless requer ferramentas de criptografia que definitivamente não são padrão no Swift. Hashes são bastante fáceis de encontrar (e eles já estão no SwiftyInsta através do CryptoSwift), mas não consegui encontrar uma biblioteca RSA confiável no passado (def não para lançamentos não atuais), e seria (pelo menos) mais um dependência.

O login da API funciona bem comigo ... apenas ajax sua enc_password

Por favor, leia meu comentário @xmmti.

Estamos todos totalmente cientes de uma correção. Estávamos antes mesmo de escrever a edição e sabemos que isso aconteceria mais cedo ou mais tarde.
O problema é que a correção é super fácil para Node JS, ou em Python, mas definitivamente não em Swift porque não há uma boa biblioteca para criptografia e CryptoSwift , atualmente exigida pelo SwiftyInsta , ou qualquer coisa baseada em CommonCrypto para esse assunto, simplesmente não é extensa o suficiente.


Vou precisar bloquear comentários para este tópico, porque não há mais nada a acrescentar.Caso decidamos implementar a alternativa (se conseguirmos encontrar uma biblioteca de criptografia válida), atualizaremos o post.Se você quiser contribuir, você é mais que bem-vindo para enviar um PR.

@sbertix
Olá, estou aqui para o meu projeto python porque estava recebendo o mesmo problema.
Se você quiser usá-lo em seu aplicativo móvel, poderá executar um servidor que esteja executando o script python para se conectar ao seu aplicativo móvel.

Isso não é um problema para mim @Emretelli7 , mas obrigado. 😊
Eu já tenho minha autenticação roteada por meio de um aplicativo de nó.
Trata-se de fornecer autenticação básica diretamente no SwiftyInsta .

O login básico parece estar funcionando agora, verifiquei duas contas diferentes com e sem 2FA .

Tentaremos usar swift-sodium para AES-GCM-256.
E SwiftyRSA para a parte RSA.

Tenha cuidado ao adicionar muitas dependências @MatoMA e tenha em mente que o SwiftyRSA não funciona no macOS, enquanto o swift-sodium é apenas iOS e macOS (sem Catalyst, sem watchOS, sem tvOS, sem Linux), ou seja, o recurso e o buraco biblioteca se não estiver empacotada em outro destino, funcionaria apenas no iOS, onde você já pode usar a autenticação baseada em visualização da Web sem problemas...\
Tentei implementá-lo no SwCrypt (sem concluí-lo por falta de tempo) e ele mostrou algum potencial (embora ainda esteja restrito a sistemas habilitados para OpenCrypto).\
Podemos comparar totalmente as implementações assim que terminarmos.

Tenha cuidado ao adicionar muitas dependências @MatoMA e tenha em mente que o SwiftyRSA não funciona no macOS, enquanto o swift-sodium é apenas iOS e macOS (sem Catalyst, sem watchOS, sem tvOS, sem Linux), ou seja, o recurso e o buraco library se não estiver empacotado em outro destino, funcionaria apenas no iOS, onde você já pode usar a autenticação baseada em visualização da Web sem problemas ...
Tentei implementá-lo no SwCrypt (sem concluí-lo por falta de tempo) e ele mostrou algum potencial (embora ainda esteja restrito a sistemas habilitados para OpenCrypto).
Podemos comparar totalmente as implementações assim que terminarmos.

Muito obrigado pela sua resposta ...
Encontramos cerca de 1/4 dos usuários que não conseguiram fazer login com a autenticação do webview. E é difícil para nós descobrir o problema. É por isso que queremos fazê-lo funcionar para a API Android(Device).
E sabe-se que a autenticação do webview não funciona se os usuários habilitarem 2FA com Auth App (não mensagem de texto).
Se as bibliotecas acima não funcionarem, ainda temos openssl - o último caminho que tentaremos ...

O login baseado na Web não está funcionando é apenas um problema com a implementação atual e é definitivamente mais fácil de corrigir.\
Eu fiz funcionar para Swiftagram , vou importar a mesma classe no SwiftyInsta se a taxa de sucesso for tão ruim.\
De qualquer forma, ter a autenticação básica de volta e funcionando corretamente ainda é uma prioridade agora, não se preocupe 😊

Então, qual você acha que é a melhor maneira de avançar em relação à compatibilidade, @TheM4hd1?\
Eu reimplementei BasicAuthenticator no Swiftagram , para que pudéssemos traduzi-lo totalmente para o SwiftyInsta , mas precisamos resolver isso primeiro (por exemplo, descartando o suporte para Linux para que funcione, versões mínimas do sistema operacional, gerenciadores de dependência, etc).

@sbertix ainda está desativado para você? parece que funciona novamente para mim agora.

Tentei na semana passada e ainda não funcionou.\
Aparentemente, isso não afeta todas as contas, mas eles estão migrando fortemente (com base no interesse renovado em enc_password em instagram-private-api ).\
Deve ser abordado no SwiftyInsta também imho.

Como a implementação não é um problema em si, e podemos portar totalmente o Swiftagram , trata-se apenas de estabelecer dependências, etc.

que tal usar openssl ? O próprio Instagram usa openssl eu acho. desta forma podemos manter a versão mínima de compatibilidade e compatibilidade linux também.

Eu realmente odeio confiar no OpenSSL (pelo menos diretamente) no Swift (como a maioria das pessoas hahaha).\
Esta é definitivamente "a solução", mas não tenho certeza se vale a pena implementá-la... @TheM4hd1\
Por todos os meios, se você quiser fazer isso, ótimo, caso contrário, eu ainda sinto que ir com algo de "nível mais alto" deve ser bom o suficiente.

Eu tentei implementar OpenSSL ele funciona bem em um projeto individual, mas adicionando-o como dependência, não consegui fazer isso, porque muitos trabalhos necessários e aumenta o tamanho da biblioteca.
Se fosse meu projeto individual, prefiro usá-lo para suportar a versão mínima do iOS. mas parece que não vale a pena fazer isso pela biblioteca.
Então eu concordo em portar SwiftaGram , esta é a melhor solução por enquanto.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

effecttwins picture effecttwins  ·  16Comentários

sbertix picture sbertix  ·  8Comentários

biox86 picture biox86  ·  12Comentários

anonrig picture anonrig  ·  3Comentários

trentona picture trentona  ·  3Comentários