Korištenje Visual Basic VBA s HTTPS i SSL

Je li moguće pristupiti web stranicama s HTTPS-om i za koje je potrebna prijava / lozinka pomoću Excela? Pa, da i ne. Evo dogovora i zašto to nije tako ravno.

Prvo, definirajmo pojmove

HTTPS je konvencijom identifikator za ono što se naziva SSL (Secure Sockets Layer). To zapravo nema nikakve veze s lozinkama ili podacima kao takvima. Ono što SSL čini je uspostavljena šifrirana veza između web klijenta i poslužitelja tako da se informacije ne šalju između dvaju "na čistom" - pomoću nekodiranih prijenosa. Ako informacije uključuju podatke za prijavu i zaporku, šifriranje prijenosa štiti ih od znatiželjnih očiju... ali šifriranje lozinki nije uvjet. Koristio sam frazu "po dogovoru", jer je prava sigurnosna tehnologija SSL. HTTPS samo signalizira poslužitelju da klijent planira koristiti taj protokol. SSL se može koristiti na razne druge načine.

Dakle... ako vaše računalo pošalje URL poslužitelju koji koristi SSL, a taj URL započinje s HTTPS-om, vaše računalo kaže poslužitelju:

"Hej, gospodine poslužitelju, rukujmo se tim šifriranjem, tako da sve što danas kažemo ne bi presretnuo neki negativac. A kad to završite, nastavite i pošaljite mi stranicu adresiranu URL-om. "

instagram viewer

Poslužitelj će poslati ključne podatke za postavljanje SSL veze. Na vašem je računalu zapravo nešto učiniti.

To je 'ključ' (kazna... dobro, svrha) za razumijevanje uloge VBA u Excelu. Programiranje u VBA zapravo bi moralo napraviti sljedeći korak i implementirati SSL na strani klijenta.

"Pravi" web preglednici to čine automatski i prikazuju vam mali simbol zaključavanja u statusnoj liniji kako bi vam pokazali da je to učinjeno. Ali ako VBA samo otvori web stranicu kao datoteku i pročita informacije na njoj u ćelijama u proračunskoj tablici (vrlo čest primjer), Excel to neće učiniti bez dodatnog programiranja. Excel zanemaruje ljubaznu ponudu poslužitelja da se rukuje i postavi sigurnu SSL komunikaciju.

Ali stranicu koju ste tražili možete pročitati na potpuno isti način

Da bismo to dokazali, upotrijebimo SSL vezu koju koristi Googleova usluga Gmail (koja započinje s "https") i kodirajte poziv za otvaranje te veze baš kao da je datoteka.

Ovo glasi na web stranicu kao da je to bila jednostavna datoteka. Budući da će nedavne verzije programa Excel automatski uvesti HTML, nakon izvršenja izraza Open, Gmail stranica (umanjena za dinamičke HTML objekte) se uvozi u proračunsku tablicu. Cilj SSL veza je razmjena informacija, a ne samo čitanje web stranica, tako da to obično neće ići jako daleko.

Da biste učinili više, u programu Excel VBA morate imati način da podržavate i SSL protokol, a možda i da podržite DHTML. Vjerojatno je bolje da počnete s potpunim Visual Basic a ne Excel VBA. Zatim koristite kontrole poput API-ja za Internet Transfer WinInet i po potrebi pozovite Excel objekte. Ali WinInet je moguće koristiti izravno iz programa Excel VBA.

WinInet je API - sučelje programskog programiranja - za WinInet.dll. Koristi se uglavnom kao jedna od glavnih komponenti Internet Explorera, ali možete ga koristiti i izravno iz svog koda, a možete ga koristiti i za HTTPS. Pisati kôd za korištenje WinIneta najmanje je zadatak srednje težine. Općenito, navedeni koraci su:

  • Povežite se s HTTPS poslužiteljem i pošaljite HTTPS zahtjev
  • Ako poslužitelj zatraži potpisanu potvrdu klijenta, ponovno dodajte zahtjev nakon dodavanja konteksta certifikata
  • Ako je poslužitelj zadovoljan, sesija je provjerena

Dvije su glavne razlike u pisanju WinInet koda za korištenje https-a, a ne uobičajenog HTTP-a:

Također biste trebali imati na umu da je funkcija razmjene podataka za prijavu / lozinku logično neovisna od šifriranja sesije pomoću https i SSL-a. Možete učiniti jedno ili drugo, ili oboje. U mnogim slučajevima to idu zajedno, ali ne uvijek. A provedba zahtjeva WinInet-a ne radi ništa da se automatski odgovori na zahtjev za prijavu / lozinku. Ako su, na primjer, prijava i zaporka dio web obrasca, možda ćete morati shvatiti imena polja i ažurirajte polja iz Excel VBA prije "objavljivanja" prijavnog niza u poslužitelj. Ispravno reagiranje na sigurnost web poslužitelja velik je dio onoga što radi web preglednik. S druge strane, ako je potrebna provjera SSL provjere, razmislite o korištenju objekta InternetExplorer za prijavu iz VBA ...

Dno crta je da je upotreba https-a i prijava na poslužitelj iz Excel VBA programa moguća, ali nemojte očekivati ​​da ćete napisati kôd koji će to učiniti za samo nekoliko minuta.

instagram story viewer