Rydych yn tapio botwm cymeradwyaeth y VPN ac nid yw’r deialog yn ymateb. Y casgliad naturiol yw bod yr ap neu’r gweinydd wedi torri, felly mae pobl yn ailosod cyfrineiriau, yn newid DNS neu’n ailosod y cleient. Fel rheol nid yw dim o hyn yn cyffwrdd y’r nam, oherwydd mae Android yn taflu cyffyrddiadau sy’n dod trwy rwystr, ac mae sgrin cymeradwyaeth y VPN yn union y math hwnnw o ddeialog cydsyniad sensitif. Nid yw’r tap byth yn cyrraedd y botwm.

Beth mae’r amddiffyniad yn ei wrthod mewn gwirionedd

Mae Android yn gwarchod rhyngweithiadau sensitif rhag tapjacking, pan fydd ffenestr arall yn eistedd uwchben y deialog ac yn dwyn y tap neu’n ei wneud yn amwys. Mae golwg yn ymuno gyda View.setFilterTouchesWhenObscured, ac mae’r digwyddiad yn cyrraedd gyda MotionEvent.FLAG_WINDOW_IS_OBSCURED pan fydd ffenestr arall wedi’i marcio fel un sy’n cuddio’n rhannol neu’n llwyr. Yna mae’r digwyddiad yn cael ei daflu yn lle ei ddosbarthu i’r lle anghywir. Estynnodd Android 12 (API 31) yr un amddiffyniad trwy rwystro cyffyrddiadau anniogel ar arwynebau cydsyniad y system, a dyna pam y gall y deialog cymeradwyo wrthod tap o haen y byddai apiau eraill yn dal i’w dderbyn.

Mae tri pheth yn creu rhwystr yn rheolaidd: ap sydd â chaniatâd i ddangos dros apiau eraill, gwasanaeth hygyrchedd sy’n tynnu cynnwys, a widget arnofiol o recordydd sgrin neu offeryn hidlo. Mae rhai nodweddion arddangos y gwneuthurwr yn ychwanegu eu haen eu hunain, a dyna pam y gall yr un ddeialog ymddwyn yn wahanol ar ddau ffôn â’r un fersiwn Android. Mae ffenestr sy’n cuddio’n rhannol yn gosod FLAG_WINDOW_IS_PARTIALLY_OBSCURED, ac mae’r tap yn cael ei daflu cyn i’r botwm ei weld o gwbl. Nodwedd o’r sgrin yw hyn, nid o’r rhwydwaith. Nid oes dim wedi’i anfon i weinydd y VPN ar y funud y caiff y tap ei daflu, felly ni all unrhyw newid ar ochr y gweinydd ddylanwadu ar y canlyniad.

Gwahaniaethwch dap marw oddi wrth gysylltiad wedi methu

Y gwahaniaeth yw’r diagnosis cyfan ac mae’n cymryd deg eiliad. Os anwybyddir y tap ac mae’r deialog yn aros yn union fel yr oedd, mae’r rhwystr yn lleol. Os yw’r deialog yn cau ac yna’n ymddangos gwall, mae’r cydsyniad wedi’i dderbyn ac rydych mewn cam arall sydd angen gwybodaeth digwyddiad yr ap ei hun.

Gallwch gadarnhau’r darlleniad lleol trwy wirio a wnaeth yr ap sy’n gofyn gynnig cysylltiad o gwbl. Nid yw cleient nad yw byth yn cofnodi ymgais ysgwyd llaw tra mae’r deialog cydsyniad ar y sgrin wedi cyrraedd y rhwydwaith.

adb shell cmd appops get com.example.vpn SYSTEM_ALERT_WINDOW
adb shell settings get secure enabled_accessibility_services

Rhestrwch pwy sydd â’r caniatâd haen a pha wasanaethau hygyrchedd sydd wedi’u galluogi, yna cymharwch â’r hyn sy’n rhedeg. Peidiwch â diffodd amddiffyniad y platfform ei hun; dyna sy’n atal ffenestr gudd rhag ateb deialog cydsyniad ar eich rhan.

Tynnwch y rhwystr, yna ceisiwch y llif arferol eto

Nodwch yn gyntaf pa ap a ofynnodd am gymeradwyaeth VPN, fel y gwyddoch ba gydsyniad rydych yn ei roi. Yna stopiwch yr haen benodol trwy ei gosodiad ei hun, yn hytrach na thynnu caniatâd eang y gallech fod ei angen yn ddiweddarach. Mae gan hidlydd sgrin fel rheol toglo yn ei ap ei hun; mae gan widget arnofiol reolaeth cau; mae gan fodd arddangos y gwneuthurwr swits yng ngosodiadau arddangos.

Dychwelwch at ap y VPN wedyn a gofynnwch am gymeradwyaeth eto, fel bod y deialog yn cael ei chreu’n newydd. Os yw’r tap yn gweithio nawr, addaswch ymddygiad cydnawsedd yr haen neu gadewch hi i ffwrdd wrth gysylltu, a chadwch yr amddiffyniad cyffwrdd ymlaen.

Os na allwch ddweud pa ffenestr sy’n gyfrifol, tynnwch nhw un ar y tro a cheiswch y deialog cydsyniad ar ôl pob newid. Bar rheoli recordydd neu lwybr byr arnofiol yw’r troseddwr arferol, a’r un a dynnoch yn union cyn iddo weithio yw’r ateb.

Adferwch unrhyw beth di’berthynas a ddiffoddwyd gennych ar y ffordd. Nid yw hidlydd sgrin na modd nos yn elyn; y ffenestr benodol sy’n gorgyffwrdd â’r deialog yw’r elyn.

Beth i beidio â’i wneud i basio’r deialog

Peidiwch â rhoi hygyrchedd i ap dieithr fel y gall wasgu’r botwm, a pheidiwch â gosod ap cymorth at hynny. Mae hynny’n rhoi’r gallu y mae’r amddiffyniad yn bod i’w wrthod, ar sgrin sy’n awdurdodi VPN.

Peidiwch ag awtomeiddio’r deialog ag offeryn mewnbwn chwaith. Mae’n rhoi’r un canlyniad â haen faleisus ac nid yw’n dysgu unrhyw beth i chi am yr achos.

Ar ddyfais a reolir, penderfyniad y gweinyddwr yw polisi sy’n cyfyngu newidiadau VPN. Nid yw arbrawf haen yn awdurdodiad i’w osgoi. Yr un modd, nid yw botwm cydsyniad sy’n peidio ag ymateb yn rheswm dros wanhau gwirio tystysgrifau na newid manylion y cyfrif: nid yw’r un o’r ddau osodiad yn tynnu rhwystr cyffwrdd lleol.

Os yw’n dal yn methu, adroddwch yr ymddygiad union

Disgrifiwch y deialog yn hytrach na’r casgliad: pa ap a ofynnodd am gymeradwyaeth, a arhosodd y deialog ar agor neu a gaeodd, a yw anogiadau sensitif eraill fel rhybuddion ffynonellau anhysbys neu hygyrchedd hefyd yn anwybyddu tapiau, model y ddyfais a fersiwn Android, a’r rhestrau haen a hygyrchedd a gasglwyd gennych.

Gofynnwch un cwestiwn arall i’r perchennog cymorth tra byddwch yno: a yw polisi’r ddyfais yn cyfyngu newidiadau cyfluniad VPN o gwbl. Mae bloc a reolir yn edrych yn wahanol i dap a anwybyddir, ac mae gwybod pa un sydd o’ch blaen yn arbed ail gylch.

Mae’r set honno’n gwahaniaethu problem cyffwrdd cuddiedig oddi wrth ddyfais fewnbwn wedi torri, deialog wedi rhewi neu floc polisi. Mae hefyd yn dweud wrth y person nesaf a ddylai edrych ar y sgrin neu ar y rhwydwaith.

Mae chanllaw Android ar tapjacking yn ymdrin ag amodau ffenestri cuddiedig a’r APIau y tu ôl i’r ymddygiad hwn. Os hoffech y trywydd tystiolaeth, chwiliwch am FLAG_WINDOW_IS_OBSCURED a FLAG_WINDOW_IS_PARTIALLY_OBSCURED ar y digwyddiad na chyrhaeddodd y botwm erioed. Y ddeialog sy’n aros ar agor yw’r peth i’w ddal, oherwydd mae’n dangos bod y tap wedi’i atal yn hytrach na’i ddanfon i ffenestr arall.

Erthyglau cysylltiedig