შეუძლია JavaScript-ს თქვენი ბრაუზერის პროქსის შეცვლა?
გამოარჩიეთ ჩვეულებრივი ვებგვერდის კოდი უფლებამოსილი ბრაუზერის გაფართოებისგან, რომელსაც შეუძლია პროქსის დაყენება.
ვებგვერდზე მომუშავე სკრიპტს არ აქვს ზოგადი პარამეტრი, რომელიც ბრაუზერის გამავალ პროქსის შეცვლის. ბრაუზერის გაფართოებას შეიძლება ჰქონდეს დამატებითი ნებართვები, მაგრამ ის მუშაობს უსაფრთხოებისა და კონფიგურაციის განსხვავებული მოდელით.
ეს განსხვავება იკარგება ძველ ფორუმის პასუხებში. კოდი, რომელიც იყენებს Firefox-ის პრივილეგირებულ შიდა ნაწილებს, ძველ გაფართოების მოდულებს ან მიტოვებულ add-on SDK-ებს, არასდროს ყოფილა ჩვეულებრივი ვებგვერდის API. ასეთი ფრაგმენტის გვერდში ჩასმა ამ უფლებებს არ იძლევა.
გამოიყენეთ ბრაუზერის გაფართოების API
Firefox-ის გაფართოებას შეუძლია გამოიყენოს დოკუმენტირებული proxy.settings API საჭირო ნებართვებით. Chrome გვთავაზობს საკუთარ პროქსის გაფართოების API-ს. მათი კონფიგურაციის მოდელები განსხვავდება; შეამოწმეთ manifest-ის მოთხოვნები და მხარდაჭერილი პარამეტრები თქვენი სამიზნე ბრაუზერისთვის.
გაფართოებამ ასევე უნდა გაითვალისწინოს პოლიტიკები ან სხვა გაფართოებები, რომლებიც იმავე პარამეტრს აკონტროლებენ. წარმატებული API გამოძახება არ არის საფუძველი ვიფიქროთ, რომ ყველა დანიშნულება ახლა თქვენს მიერ განზრახული მარშრუტით მიდის. შეამოწმეთ მიღებული კონფიგურაცია და შეინარჩუნეთ მომხმარებლის შესაძლებლობა მისი აღდგენისა.
fetch URL-ის შეცვლა ცვლის დანიშნულებას
ვებგვერდს შეუძლია გამოიძახოს აპლიკაციის სერვერი, რომელიც მოთხოვნას მისი სახელით გადასცემს, ბრაუზერის ვებ წესების შესაბამისად. ამ დიზაინში ბრაუზერი იმ აპლიკაციის სერვერს უკავშირდება. მან არ დააყენა ზოგადი ბრაუზერის პროქსი და არ შეცვალა დაუკავშირებელი ჩანართების მარშრუტი.
ანალოგიურად, სხვა IP მისამართის მქონე თავსართის გაგზავნა არ ცვლის კავშირის წყაროს მისამართს. დანიშნულებამ შეიძლება სანდო გადაცემის მეტამონაცემები საკუთარი პოლიტიკით განმარტოს, მაგრამ ქსელური გზა ცალკე ფაქტია.
თუ თქვენი მიზანია IP-ის შემცვლელი პროქსი დათვალიერებისთვის, აირჩიეთ შესაფერისი ჩანაწერი უფასო პროქსების სიიდან და დააყენეთ მხარდაჭერილი ბრაუზერის პროქსი ან უფლებამოსილი გაფართოება. თუ მიზანი ერთი ვებ აპლიკაციის დისტანციური fetch-ია, დააპროექტეთ ეს ფუნქცია მისი რეალური სერვერისა და ბრაუზერის საზღვრების მიხედვით.