Egy PHP-alkalmazás Alice-t és Bobot szolgálja ki, és mindketten a kiszolgálóoldali cURL-kliensét használják, hogy proxyn keresztül ugyanarra a távoli webhelyre jussanak. Ha minden kérés betölti a cookies.txt fájlt, a két felhasználó örökölheti ugyanazt a távoli bejelentkezést. A proxycímeik megváltoztatása nem választja szét azt a fájlt.

A fájlnév kiválasztása előtt válassza ki a süti tulajdonosát. Általában az alkalmazás logikai távoli munkamenete: egy helyi felhasználó, egy adott távoli fiók és, ahol szükséges, egy külön munkaterület. A proxy végpont útválasztási döntés, nem megbízható munkamenet-azonosító. Több felhasználó oszthat egy végpontot, és egy végpont váltogathatja a kilépéseket.

Ugyanazon munkamenet üvegének betöltése és mentése

Hagyja, hogy az alkalmazás a hitelesített munkamenetét a kiszolgáló által generált fájlkulcshoz rendelje. Privát sütimappával és megbízható $sessionKey kulccsal a cURL-konfiguráció ilyen alakú:

$jar = $cookieDirectory . '/' . $sessionKey . '.cookies';

$ch = curl_init('https://service.example.net/account');
curl_setopt_array($ch, [
    CURLOPT_PROXY => 'http://proxy.example.net:8080',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_COOKIEFILE => $jar,
    CURLOPT_COOKIEJAR => $jar,
]);

Egy engedélyezett nyilvános webhely-munkamenet-teszthez olyan hálózaton, amely megenged egy nyilvános közvetítőt, a HTTP-proxylista jelölt végpontokat kínál. Olyan leírót használjon, amelyhez nincs beállított proxyhitelesítés vagy tárolt proxyhitelesítő adat, és tartsa a sütiallapotot a szándékolt munkamenethez rendelve. Ez a részlet egy leírót állít be; az alkalmazás végzi az átvitelt, és a szokásos kérésfolyamán ellenőrzi az eredményt. A COOKIEFILE betölti a munkamenet korábbi sütijeit. A COOKIEJAR kiválasztja, hová írja a leíró a tárolt sütijeit. Csak a kimeneti fájl beállítása nem tölti be a korábbi bejelentkezést.

Egy új munkamenet fájl nélkül is indulhat. Adja meg első átvitelének a szándékolt üvegútvonalat, hagyja, hogy a webhely létrehozza a sütiket, és mentse a keletkező állapotot a következő kéréshez. A sütimappának írhatónak kell lennie az alkalmazás munkavégzője számára, és a nyilvánosan kiszolgált dokumentumfán kívül kell maradnia. Ne alakítson látogató által megadott felhasználónevet vagy útvonalat fájlnévvé; keresse meg a megbízható kulcsot a kiszolgálón.

A mentésnek hely kell a kérés életciklusában

A libcurl rendszerint a leíró tisztítása közben írja az üveget. Ha az alkalmazásnak a távoli csere után kifejezett mentési pontra van szüksége, kérheti:

curl_setopt($ch, CURLOPT_COOKIELIST, 'FLUSH');

Ez a leíró által jelenleg ismert sütiket a beállított üvegébe írja. Fejezze be a leíró használatát arra a munkamenetre, mielőtt nem kapcsolódó munkához rendelné. Csak az üvegútvonal megváltoztatása egy olyan leírón, amely már Alice sütijeit tartalmazza, nem egyenlő Bob tiszta munkamenetének létrehozásával.

Különböztesse meg a sikeres letöltést a sikeres megőrzéstől is. A sütiüveg dokumentációja megjegyzi, hogy a tisztítás közbeni írási hiba nem közönséges átviteli hibaként tér vissza. Ellenőrizze a mappa tulajdonjogát, a jogosultságokat és az alkalmazás diagnosztikai kimenetét, amikor a bejelentkezés egy kérésnél működik, a következőnél pedig eltűnik.

A párhuzamos kérések újabb határt vezetnek be. Két munkavégző betöltheti ugyanazt a régi üveget, egymástól függetlenül módosíthatja memóriabeli állapotát, majd eltérő eredményeket menthet. A munkamenetenkénti zár vagy azzal egyenértékű sorosítás csak akkor fedje le a teljes betöltési, csere- és mentési sorozatot, ha mindkét kérés egy távoli bejelentkezést oszt meg; csak a végső írás zárolása nem egyezteti korábbi pillanatképeiket. A különböző munkameneteknek különböző fájlokkal és független zárakkal kell rendelkezniük.

Kijelentkezéskor fejezze be a szándékolt távoli munkamenetet, és az alkalmazás irányelve szerint vonja vissza annak helyi sütiallapotát. Egy újonnan kiválasztott proxy ezután bármely új munkamenethez csatlakoztatható, amelyet a felhasználó indít, anélkül hogy a proxycím döntené el, kinek a bejelentkezése van a memóriában.

Kapcsolódó cikkek