Mae rhywun yn gofyn pam fod defnyddiwr VPN yn ymddangos yng nghofnod y rhaglen gyda chyfeiriad sy'n perthyn i'r porth, neu gyda chyfeiriad a newidiodd ar ôl cinio. Mae'r ateb yn dechrau gyda beth yw'r gwerth hwnnw: cofnod a roddodd y gweinydd gwe yn amgylchedd y cais. Nid ymholiad i'r twnnel yw e, nid hunaniaeth tystysgrif yw e, ac nid addewid yw e bod y rhif yn perthyn i un person. Mae ei ddarllen fel unrhyw un o'r tri hynny yn cynhyrchu atebion hyderus sy'n anghywir mewn ffyrdd gwahanol.

Daw'r gwerth o'r gweinydd, nid o'r twnnel

Mae PHP yn derbyn amgylchedd y cais gan yr hyn a weithredodd y sgript. Mae cyfeirlyfr newidynnau gweinydd PHP yn disgrifio'r cofnodion hyn fel rhai a grëwyd gan y gweinydd gwe, gyda darpariaeth sy'n dibynnu ar sut y cyrhaeddodd y cais.

Mae sgript a weithredir fel bachyn llinell orchymyn y VPN yn gyd-destun gweithredu hollol wahanol. Nid oes ganddi gais gwe, nac unrhyw soced cleient, nac REMOTE_ADDR, a dyna pam mae cod gwe a gopïwyd i fachyn yn rhoi gwerthoedd gwag yn lle rhai anghywir. Mae gan y bachyn ei amgylchedd ei hun, a lenwir gan y daemon, ac mae wedi'i ddogfennu ar wahân. Mae cyrraedd at REMOTE_ADDR yno yn gyrraedd at newidyn na osodwyd erioed.

Cadwch y gwahaniaeth hwnnw mewn cof cyn cymharu dau gofnod. Efallai eich bod yn cymharu cais tudalen â bachyn, ac nid cymhariaeth o gwbl yw hynny. Gwiriwch y cyd-destun gweithredu yn gyntaf a'r cyfeiriad wedyn.

Dilynwch lwybr y cais cyn ymddiried yn y rhif

Y cyfeiriad a adroddwyd yw cymar y cysylltiad a welodd y gweinydd gwe. Rhowch unrhyw beth rhwng y cleient a'r gweinydd hwnnw a bydd y cymar yn newid. Mae cyfieithu, terfynu a chydbwyso llwyth pob un yn symud yr arsylwad un naid ymhellach oddi wrth y defnyddiwr.

Mae pedwar llwybr cyffredin yn cynhyrchu pedwar arsylwad gwahanol.

Path to the listenerWhat can be reported
Client routed straight to the private listener, no translationThe client's tunnel address
Gateway translates the source before forwardingThe gateway's translated address
Reverse proxy terminates the client and opens its own backend connectionThe proxy's backend address
Load balancer in front of two proxiesWhichever hop the server treats as its peer

Nodwch y llwybr gydag enw'r gyrchfan, teulu'r cyfeiriadau a phob pwynt cyfieithu. Heb y map hwnnw, mae gwerth cywir a gwerth anghywir yn edrych yn union yr un fath mewn llinell gofnod. Mae dwy linell o ddiagram yn arbed prynhawn o ddadlau.

Dim ond lle mae wedi'i ffurfweddu y mae disodli yn digwydd

Gall gweinydd neu fframwaith ddisodli cyfeiriad y cleient yn fwriadol. Mae modiwl remote-IP Apache a modiwl real-IP NGINX ill dau yn gwneud hyn, ac mae'r gwerth a gaiff PHP yn dibynnu ar y ffurfweddiad hwnnw ynghyd â'r paramedrau a basiwyd i driniwr y sgript.

Felly nid REMOTE_ADDR yn ddieithriad mo'r cymar TCP heb ei gyffwrdd. Y cymar yw e fel y dewisodd y gweinydd ei adrodd ar ôl gweithredu ei bolisi ei hun. Mae'r gwahaniaeth hwnnw'n penderfynu ai tystiolaeth neu addurn yw'r gwerth.

Gofynnwch i berchennog y gweinydd pa faes sy'n awdurdodol yn y defnyddiad hwn a sut y cedwir y cymar gwreiddiol pan fydd disodli yn digwydd. Os na all neb ateb, nid yw'r cofnod yn profi dim eto.

Peidiwch â darllen penawdau anfon ar ymddiriedaeth

Gall y galwr anfon penawdau anfon ei hun. Triniaethu'r cofnod cyntaf a wahanwyd gan atalnod fel cyfeiriad defnyddiwr wedi'i wirio yw penderfynu credu pwy bynnag sy'n cysylltu, sef y gwrthwyneb i bwrpas y pennawd. Mae'r pennawd yn disgrifio cadwyn, a dim ond haen ymddiriedadwy all roi sicrwydd dros y gadwyn honno.

Defnyddiwch gymorth dirprwy ymddiriedadwy'r gweinydd neu'r fframwaith gyda'r gadwyn ddirprwy go iawn wedi'i ffurfweddu, a gadewch iddo daflu gwerthoedd o ffynonellau y tu allan i'r gadwyn honno. Y dadansoddiad a ysgrifennwyd â llaw yw lle mae'r rhan fwyaf o'r methiannau diddorol yn byw.

Nid yw cyfeiriad a adroddwyd gan ddirprwy yn newid ffynhonnell y pecynnau y mae mur gwarchod uwch yn eu gweld chwaith. Cadwch fetadata HTTP a hidlo rhwydwaith fel arsylwadau ar wahân, oherwydd maent yn ateb cwestiynau gwahanol.

Defnyddiwch hunaniaeth y rhaglen ar gyfer penderfyniadau

Ar gyfer mynediad at gofnodion defnyddiwr, dibynnwch ar y prif berson sydd wedi'i ddilysu a rheolau awdurdodi'r rhaglen. Gellir ailddyrannu cyfeiriad mewnol, a gall un cyfeiriad cyfieithiedig gynrychioli cannoedd o ddefnyddwyr ar yr un pryd. Nid oes yr un o'r priodoleddau hynny y gall gwiriad cyfeiriad ei gywiro.

Os oes angen i weithrediadau gysylltu cais â sesiwn VPN, cysylltwch y cyfeiriad a arsylwyd a'r stamp amser â chofnodion sesiwn awdurdodol yn ôl y model cyfieithu a ddogfennwyd gennych. Mae hynny'n cynhyrchu cysylltiad y gallwch ei amddiffyn; nid yw cyfeiriad ar ei ben ei hun yn gwneud hynny.

Ar gyfer diagnosis, cofnodwch ychydig o feysydd sydd eu hangen yn lle'r arae gweinydd gyfan, a all gario penawdau a deunydd dilysu. Mae'r casgliad defnyddiol yn dweud beth mae'r gwerth hwn yn ei olygu yn y defnyddiad hwn, nid pa werth sy'n edrych fwyaf fel cleient.

Erthyglau cysylltiedig