A Visual Basic VBA használata HTTPS és SSL használatával

Elérhetőek-e a HTTPS-sel rendelkező weboldalak, amelyek bejelentkezéshez / jelszóhoz szükségesek az Excel segítségével? Nos, igen és nem. Itt van az üzlet, és miért nem olyan egyértelmű.

Először határozzuk meg a feltételeket

A HTTPS az egyezményesen az SSL (Secure Sockets Layer) nevű azonosító. Ennek semmi köze sincs a jelszavakhoz vagy a bejelentkezésekhez. Az SSL titkosított kapcsolatot létesít egy webes ügyfél és a szerver között úgy, hogy nem kerül információ továbbításra a kettő között "egyértelműen" - titkosítatlan átvitel segítségével. Ha az információk tartalmaznak bejelentkezési és jelszóinformációkat, akkor az átvitel titkosítása megóvja őket a kíváncsiságtól... de a jelszavak titkosítása nem követelmény. Az "egyezmény szerint" kifejezést használtam, mert az igazi biztonsági technológia az SSL. A HTTPS csak azt a szervert jelzi, amelyet az ügyfél tervez az adott protokoll használatára. Az SSL számos más módon is használható.

Tehát... ha a számítógépe URL-t küld egy olyan kiszolgálóra, amely SSL-t használ, és az URL a HTTPS-vel kezdődik, akkor a számítógép azt mondja:

instagram viewer

"Hé, szerver úr, keressük át a titkosítási ügyet, hogy bármit is mondjunk, az nem zavarja meg valami rossz fiú. És amikor ez kész, folytassa, és küldje el nekem az URL címmel ellátott oldalt. "

A szerver vissza fogja küldeni a legfontosabb információkat az SSL kapcsolat létrehozásához. A számítógép feladata, hogy valójában tegyen valamit vele.

Ez "kulcs" (pont... jó, sorta szánták) a szerepének megértéséhez VBA Excelben. A VBA-ban történő programozásnak valójában meg kell tennie a következő lépést, és az SSL-t az ügyféloldalon be kell vezetnie.

A „valódi” böngészők ezt automatikusan megteszik, és egy kis zárjelzést mutatnak az állapotsorban, hogy megmutatják, hogy megtörtént. De ha a VBA csak megnyitja a weboldalt fájlként, és a benne található információkat egy táblázatban cellákba olvassa (nagyon általános példa), az Excel ezt nem fogja elvégezni további kiegészítő programozás nélkül. Az Excel figyelmen kívül hagyja a kiszolgáló irgalmas ajánlatát, hogy kezet rázson és biztonságos SSL kommunikációt hozzon létre.

De pontosan ugyanúgy el tudja olvasni a kért oldalt

Ennek bizonyításához használjuk az SSL kapcsolatot, amelyet a Google Gmail szolgáltatása használ (amely "https" -vel kezdődik), és kódoljuk a hívást a kapcsolat megnyitásához, akárcsak egy fájl.

Ez úgy olvassa a weboldalt, mintha egyszerű fájl lenne. Mivel az Excel legújabb verziói automatikusan importálják a HTML-t, az Open utasítás végrehajtása után a Gmail oldalt (levonva a dinamikus HTML objektumokat) egy táblázatba importáljuk. Az SSL kapcsolatok célja az információcsere, nem csak a weboldalak olvasása, így ez általában nem jut el messze.

Ha többet szeretne elérni, akkor az Excel VBA programjában valamilyen módon támogatnia kell az SSL protokollt és esetleg a DHTML-t is. Valószínűleg jobb, ha a teljesnel kezdted Visual Basic az Excel VBA helyett. Ezután használjon vezérlőket, mint például az Internet Transfer API WinInet, és szükség szerint hívja meg az Excel objektumokat. De a WinInet közvetlenül használható egy Excel VBA programból is.

A WinInet egy API - alkalmazásprogramozási felület - a WinInet.dll fájlhoz. Elsősorban az Internet Explorer egyik fő összetevőjeként használják, de közvetlenül a kódjából is felhasználhatja, és HTTPS-re is felhasználhatja. A kód WinInet használatához történő írása legalább közepes nehézségű feladat. Általában az érintett lépések a következők:

  • Csatlakozzon a HTTPS szerverhez, és küldjön HTTPS kérést
  • Ha a kiszolgáló aláírt kliens igazolást kér, akkor a tanúsítási környezet csatolása után küldje el újra a kérést
  • Ha a szerver elégedett, a munkamenet hitelesítve van

Két nagy különbség van abban, hogy a WinInet kódot a szokásos HTTP helyett a https használja:

Azt is szem előtt kell tartania, hogy a bejelentkezés / jelszó cseréje logikailag független attól, hogy a munkamenetet a https és az SSL segítségével titkosítja-e. Megteheted az egyiket vagy a másikot, vagy mindkettőt. Sok esetben együtt járnak, de nem mindig. A WinInet követelmények végrehajtása semmit sem jelent, hogy automatikusan válaszoljon a bejelentkezési / jelszó kérésre. Ha például a bejelentkezés és a jelszó egy webes űrlap része, akkor előfordulhat, hogy kitalálnia kell a a mezők nevét, és frissítse a mezőket az Excel VBA alkalmazásból, mielőtt a bejelentkezési karakterláncot "elküldi" a szerver. A webszerver biztonságára adott helyes válaszadás nagy része annak, amit a webböngésző tesz. Másrészt, ha SSL hitelesítésre van szükség, akkor fontolóra veheti az InternetExplorer objektum használatát a VBA-n belüli bejelentkezéshez ...

A lényeg az, hogy a https használata és a kiszolgálóra való bejelentkezés Excel VBA programból lehetséges, de ne várja el, hogy néhány percen belül megírja a kódot, amely ezt megteszi.

instagram story viewer