Giữ nguyên thông tin đăng nhập proxy đã mã hóa trong tệp batch
Bảo toàn tên người dùng và mật khẩu proxy được mã hóa phần trăm khi chuyển một lệnh Windows vào tệp .bat.
URL proxy hoạt động khi được cấu hình trực tiếp, nhưng xác thực thất bại sau khi cùng giá trị đó được chuyển vào tệp batch Windows. Hãy kiểm tra xem bộ phân tích batch có thay đổi các dấu phần trăm trước khi ứng dụng khách HTTP nhận được URL hay không.
Có hai cách biểu diễn riêng biệt. Mã hóa URL có thể biểu diễn dấu gạch chéo ngược là %5C và dấu chấm hỏi là %3F. Dấu phần trăm nguyên văn trong lệnh tệp batch phải được thoát thành %%.
Đối với tài khoản minh họa domain\user với mật khẩu giữ chỗ pass?, tệp .bat có thể chứa:
set "https_proxy=http://domain%%5Cuser:pass%%[email protected]:8080"
Tiến trình được khởi chạy sau đó phải nhận được URL có chứa domain%5Cuser:pass%3F. Các dấu phần trăm nhân đôi thuộc về nguồn batch, không thuộc về URL proxy mà ứng dụng khách lưu trữ.
Không sao chép cách viết batch đó vào tệp .npmrc hoặc trường proxy của ứng dụng: những đầu vào đó không đi qua cùng bước phân tích batch. Tương tự, ví dụ này không phải cú pháp PowerShell. Một lớp bao khác, như CALL hoặc lệnh được tạo cho shell thứ hai, có thể thêm một lượt phân tích nữa và cần được xem xét riêng.
Đặt phép gán SET trong dấu ngoặc kép như minh họa để khoảng trắng tình cờ hoặc ký tự đặc biệt của shell không trở thành phần của một lệnh ngoài ý muốn. Chỉ dấu ngoặc kép không ngăn được việc mở rộng phần trăm.
Khi kiểm tra kết quả, hãy so sánh mã hóa mong đợi với một biểu diễn đã được che bớt thay vì in URL chứa mật khẩu vào nhật ký dùng chung. Việc sửa lỗi thoát của shell giữ lại thông tin đăng nhập; nó không chọn một lược đồ xác thực mà ứng dụng khách vốn chưa hỗ trợ.