ვიღაცამ შექმნა ავტომატიზაცია, რომელიც რთავს VPN-ს, როცა ინკოგნიტო ტაბი ჩნდება, და ის საიმედოდ არ მუშაობს. ამას სტრუქტურული მიზეზი აქვს და ღირს მისი გაგება ავტომატიზაციის მორგებამდე. Android-ის აპლიკაციაზე დაფუძნებული VPN წესები ირჩევს აპლიკაციის პაკეტებს, ხოლო ინკოგნიტო ერთი პაკეტის შიგნით არსებული მდგომარეობაა, ამიტომ წესი ვერ განასხვავებს ორივეს. შეტყობინება ირთვება მას შემდეგ, რაც ბრაუზერმა უკვე დაიწყო მუშაობა, ამიტომ სწორი გამომწვევიც კი გვიან მოდის. გაიარეთ ქვემოთ მოცემული შემოწმებები რიგითობით; მეოთხე შემოწმებაზე წარუმატებლობა ნიშნავს, რომ შესაცვლელია მიდგომა და არა კონფიგურაცია.

შემოწმება ერთი: დაადასტურეთ, რისი არჩევა შეუძლია აპლიკაციაზე დაფუძნებულ წესს

Android VPN აპლიკაცია თავის გვირაბს ნებადართული ან აკრძალული აპლიკაციების სიებით აშენებს და ეს სიები პაკეტის სახელებს იღებს. Chrome ჩვეულებრივ რეჟიმში და Chrome ინკოგნიტო რეჟიმში ერთი და იგივე პაკეტია, იგივე მომხმარებლის ID-ით და იგივე ქსელური ნებართვით, ამიტომ Chrome-ის ჩამრთველი ან გამომყოფი წესი ორივეზე ერთნაირად ვრცელდება. პლატფორმას არ აქვს ტაბზე მიბმული იდენტობა, რომელსაც შეადარებს.

ეს არ არის ხარვეზი, რომელიც უნდა ავუაროთ; ეს არის ის დეტალიზაცია, რომელსაც API გვთავაზობს. თუ თქვენი მოთხოვნაა Chrome-ის ტრაფიკი გვირაბში და ყველაფერი დანარჩენი გარეთ, აპლიკაციაზე დაფუძნებული წესი ამას ზუსტად გამოხატავს. თუ თქვენი მოთხოვნაა მხოლოდ პირადი ტაბები გავიდეს გვირაბში, ხოლო ჩვეულებრივი ტაბები პირდაპირ, მაშინ ვერც ერთი აპლიკაციაზე დაფუძნებული წესი ვერ გამოხატავს ამას და შეტყობინების ლოგიკის არც ერთი რაოდენობა არ დაამატებს სელექტორს, რომელიც პლატფორმას არ აქვს.

შემოწმებისას ყურადღება მიაქციეთ პაკეტის იდენტობის ხაფანგს. ბეტა ან მწარმოებლის ნაგებობა განსხვავებული პაკეტია სტაბილური ბრაუზერისგან, ამიტომ ერთის დამფარავი წესი ჩუმად გამოტოვებს მეორეს:

adb shell pm list packages | grep -i chrome

შემოწმება ორი: შეამოწმეთ, შეიძლება თუ არა გამომწვევი ოდესმე საკმარისად ადრე იყოს

შეტყობინებების მსმენელი აკვირდება იმ შეტყობინებებს, რომელთა ნახვის უფლებაც აქვს. დაკვირვება ჩარევა არ არის: ბრაუზერმა უკვე გადაწყვიტა სახელი და გახსნა კავშირი მანამ, სანამ შეტყობინება არსებობს, და ამ გზაზე არაფერი ელოდება თქვენი ავტომატიზაციის დასრულებას. ამოცანა, რომელიც შემდეგ VPN კლიენტს უშვებს, უნდა დაელოდოს კლიენტის ინტერფეისს, ნებისმიერ თანხმობის მოთხოვნას და გვირაბის ხელის ჩამორთმევას, რომლებიც წამებში იზომება, ხოლო პირველი მოთხოვნა მილიწამებში.

თვით აღმოჩენა მყიფეა მეორე მიზეზის გამო. შეტყობინების ტექსტი იცვლება ვერსიებსა და ლოკალიზაციებს შორის, ამიტომ ერთ გამოშვებაზე მორგებული შაბლონი განახლების შემდეგ წყვეტს დამთხვევას და მარცხი ჩუმია. შეტყობინების არარსებობა არ არის მტკიცებულება იმისა, რომ პირადი დათვალიერება არ არის; შეიძლება უბრალოდ ნიშნავდეს, რომ სტრიქონი შეიცვალა ან არხი გაჩუმდა.

ამ სამუშაო პროცესს აქვს ლეგიტიმური ვერსია და ის რეაქტიული არ არის, არამედ დალაგებული: ჯერ დაუკავშირდით დამტკიცებულ VPN-ს, დაადასტურეთ მზადყოფნის სიგნალი, რომელიც ნამდვილად ამტკიცებს, რომ გვირაბი ტრაფიკს ატარებს, შემდეგ გახსენით ინკოგნიტო სესია მხარდაჭერილი ბრაუზერის კონტროლით და შეჩერდით, თუ მზადყოფნის შემოწმება ჩავარდა. ეს იცავს იმ სესიას, რომლის დაწყებასაც აპირებთ, ისე, რომ არ მოაჩვენოთ უკვე მიმდინარე სესიის დაცვა.

შემოწმება სამი: აუდიტი გაუკეთეთ იმ ნებართვას, რომლის მიცემასაც აპირებთ

შეტყობინებებზე წვდომა მგრძნობიარე ნებართვაა, რომელიც საშუალებას აძლევს სერვისს წაიკითხოს ყველა აპლიკაციის შეტყობინებები და არა მხოლოდ ბრაუზერის. უცნობ ავტომატიზაციის ხელსაწყოსთვის მისი მიცემა ერთი ბრაუზერის მდგომარეობის დასაკვირვებლად ცუდი გაცვლაა და წვდომა ექსპერიმენტის დასრულების შემდეგაც რჩება. ხელმისაწვდომობით მართული შეხებები უარესია: ისინი ინტერფეისზე არსებული სკრიპტული ფენაა და არა მხარდაჭერილი VPN კონტროლის ინტერფეისი, და ტყდება ყოველ განლაგების ცვლილებაზე.

სანამ რამეს მისცემთ, იკითხეთ, მიიღწევა თუ არა იგივე შედეგი მხარდაჭერილი მექანიზმით. თუ პასუხი პოლიტიკის მოთხოვნაა, ჩვეულებრივ ასეა: პლატფორმას შეუძლია გვირაბის იძულება აპლიკაციისთვის ან პროფილისთვის ყოველგვარი მსმენი სერვისის გარეშე.

შემოწმება ოთხი: როცა მოთხოვნა აღსრულებაა, გამოიყენეთ მუდამ ჩართული და ბლოკირება

თუ ბრაუზერს არასდროს არ უნდა ჰქონდეს კომუნიკაცია გვირაბის გარეთ, აღსრულება პლატფორმის პარამეტრებშია და არა მაკროში. Android მხარს უჭერს მუდამ ჩართულ VPN-ს ბლოკირების რეჟიმით, რომელიც ხელს უშლის ტრაფიკს, როცა გვირაბი არ არის დამყარებული, და მართული მოწყობილობები მას პოლიტიკით მიიღებენ. ვარაუდის გაკეთების ნაცვლად დაადასტურეთ, რა აქვს მოწყობილობას ახლა:

adb shell settings get global always_on_vpn_app
adb shell settings get global always_on_vpn_lockdown

აპლიკაციის არანულოვანი მნიშვნელობა ნიშნავს, რომ პაკეტი მუდამ ჩართულად არის კონფიგურირებული, ხოლო ბლოკირების მნიშვნელობა 1 ნიშნავს, რომ გვირაბის გარეთ კავშირები დაბლოკილია. სწორედ ეს წყვილი აქცევს საუკეთესო ძალისხმევის ჩვეულებას გარანტიად და ის ასევე მთლიანად აქრობს რბოლას, რადგან გვირაბი აპლიკაციის ტრაფიკის ნებართვამდე მყარდება.

აქ ორი საზღვარია აღნიშვნის ღირსი. სამუშაო პროფილებს საკუთარი VPN კონფიგურაცია აქვთ, ამიტომ პირად პროფილში შემოწმებული წესი სამუშაო პროფილზე არაფერს ამბობს. ხოლო ცალკე დაყენებული ბრაუზერი, სხვა აპლიკაციის მიერ გახსნილი მორგებული ტაბი ან აპლიკაციის შიგნით არსებული webview სხვა პაკეტი ან კონტექსტია საკუთარი მარშრუტიზაციით, ამიტომ დაადასტურეთ რეალური პაკეტი და ნუ ჩათვლით, რომ განსხვავებული სტილის ფანჯარა ცალკე დომენია.

შემოწმება ხუთი: ჩაწერეთ სამუშაო პროცესი და გამოსცადეთ წარუმატებლობის გზა

რასაც არ უნდა აირჩიოთ, დააფიქსირეთ რიგი და შეწყვეტის პირობა. მოხერხებულობის პროცესისთვის ეს ნიშნავს: გვირაბი ზემოთ, მზადყოფნა დადასტურებული, ინკოგნიტო გახსნილი და მკაცრი გაჩერება, თუ მზადყოფნა ჩავარდა. აღსრულების გზისთვის ეს ნიშნავს: მუდამ ჩართული აპლიკაცია კონფიგურირებული, ბლოკირება ჩართული და მოსალოდნელი ქცევა, როცა გვირაბი საერთოდ ვერ ადის, ანუ ტრაფიკი არ არის დაუცველი ტრაფიკის ნაცვლად.

შემდეგ გამოსცადეთ მარცხი და არა მხოლოდ წარმატება. გაწყვიტეთ გვირაბი სესიის განმავლობაში და დააკვირდით, რას აკეთებს ბრაუზერი; დაბლოკეთ VPN აპლიკაციის პროცესი და დაადასტურეთ, რომ არაფერი ჟონავს. ბოლოს, მომხმარებლის დოკუმენტაციაში ცალ-ცალკე შეინახეთ კონფიდენციალურობის ორი მოდელი: ინკოგნიტო მართავს ბრაუზერის დროებით მდგომარეობას და არ მალავს ტრაფიკს ქსელისგან, ხოლო VPN ტრაფიკს გადააქვს, მაგრამ არ შლის შესვლებს ან პირად სესიაში გაგზავნილ არაფერს.

დაკავშირებული სტატიები