Applikazzjoni PHP taqdi lil Alice u Bob, u t-tnejn jużaw il-klijent cURL tagħha fuq in-naħa tas-server biex jilħqu l-istess sit web remot permezz ta' proxy. Jekk kull talba tgħabbi cookies.txt, iż-żewġ utenti jistgħu jirtu l-istess login remot. It-tibdil tal-indirizzi tal-proxy tagħhom ma jifridx dak il-fajl.

Agħżel is-sid tal-cookie qabel ma tagħżel l-isem tal-fajl. Normalment huwa s-sessjoni remota loġika tal-applikazzjoni: utent lokali, kont remot partikolari u, fejn meħtieġ, spazju tax-xogħol separat. Punt tat-tmiem tal-proxy huwa għażla ta' rotot, mhux identifikatur tas-sessjoni affidabbli. Diversi utenti jistgħu jaqsmu punt tat-tmiem wieħed, u punt tat-tmiem jista' jdawwar il-ħruġ.

Għabbi u salva l-ġarra tas-sessjoni stess

Ħalli lill-applikazzjoni timmappa s-sessjoni awtentikata tagħha għal ċavetta tal-fajl iġġenerata mis-server. B'direttorju tal-cookies privat u $sessionKey affidabbli, il-konfigurazzjoni tal-cURL tieħu din il-forma:

$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,
]);

Għal test tas-sessjoni ta' sit pubbliku permess fuq netwerk li jippermetti intermedjarju pubbliku, il-lista tal-proxies HTTP tforni punti tat-tmiem kandidati. Uża handle mingħajr awtentikazzjoni tal-proxy konfigurata jew kredenzjali tal-proxy miżmuma, u żomm l-istat tal-cookies assenjat lis-sessjoni maħsuba tiegħu. Dan il-framment jikkonfigura handle; l-applikazzjoni twettaq it-trasferiment u tiċċekkja r-riżultat permezz tal-fluss normali tat-talbiet tagħha. COOKIEFILE jgħabbi l-cookies preċedenti tas-sessjoni. COOKIEJAR jagħżel fejn l-handle jikteb il-cookies miżmuma tiegħu. Issettjar tal-fajl tal-ħruġ biss ma jgħabbix il-login preċedenti.

Sessjoni ġdida tista' tibda mingħajr fajl. Agħti lit-trasferiment ewwieni tagħha l-passaġġ tal-ġarra maħsub, ħalli s-sit jistabbilixxi l-cookies, u salva l-istat li jirriżulta għat-talba li jmiss. Id-direttorju tal-cookies irid ikun jista' jinkiteb mill-ħaddiem tal-applikazzjoni u jinżamm barra mis-siġra tad-dokumenti moqdija pubblikament. Tiddritx isem tal-utent jew passaġġ ipprovdut mill-viżitatur f'isem tal-fajl; fittex iċ-ċavetta affidabbli fuq is-server.

Is-salvataġġ jeħtieġ post fiċ-ċiklu tal-ħajja tat-talba

libcurl normalment jikteb il-ġarra waqt it-tindif tal-handle. Jekk l-applikazzjoni teħtieġ punt ta' salvataġġ espliċitu wara l-iskambju remot, tista' titlob:

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

Dan jikteb il-cookies magħrufa bħalissa mill-handle fil-ġarra konfigurata tiegħu. Lesti l-użu tal-handle għal dik is-sessjoni qabel ma tassenjah xogħol mhux relatat. It-tibdil biss tal-passaġġ tal-ġarra fuq handle li diġà jżomm il-cookies ta' Alice mhuwiex ekwivalenti għall-ħolqien tas-sessjoni nadifa ta' Bob.

Iddistingwi wkoll download b'suċċess minn persistenza b'suċċess. Id-dokumentazzjoni tal-ġarra tal-cookies tinnota li falliment tal-kitba waqt it-tindif ma jiġix irritornat bħala żball tat-trasferiment ordinarju. Iċċekkja s-sjieda tad-direttorju, il-permessi u l-ħruġ dijanjostiku tal-applikazzjoni meta login jaħdem għal talba waħda u jisparixxi fit-tali li jmiss.

Talbiet konkorrenti jdaħħlu fruntiera oħra. Żewġ ħaddiema jistgħu jgħabbu l-istess ġarra qadima, ibiddlu l-istat tagħhom fil-memorja b'mod indipendenti, u mbagħad isalvaw riżultati differenti. Lock għal kull sessjoni jew serializzazzjoni ekwivalenti għandu jkopri s-sekwenza kollha ta' tagħbija, skambju u salvataġġ jekk iż-żewġ talbiet jaqsmu login remot wieħed; li tissakkar biss il-kitba finali ma tarmonizzax is-snapshots preċedenti tagħhom. Sessjonijiet differenti għandu jkollhom fajls differenti u locks indipendenti.

Mal-ħruġ, temm is-sessjoni remota maħsuba u rtira l-istat tal-cookies lokali tagħha skont il-politika tal-applikazzjoni. Proxy magħżul dan l-aħħar jista' mbagħad jiġi mwaħħal ma' kwalunkwe sessjoni ġdida li jibda l-utent, mingħajr ma l-indirizz tal-proxy jiddeċiedi ta' min huwa l-login fil-memorja.

Artikli relatati