Nó không an toàn, vì cURL mặc định xác thực cơ bản nơi giao thức HTTP gửi mật khẩu của bạn dưới dạng văn bản rõ ràng. Khi bạn chỉ định username:password
chuỗi, nó sẽ được chuyển đổi thành chuỗi BASE64 trong tiêu đề HTTP:
GET / HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Bất cứ ai cũng có thể chặn lưu lượng HTTP của bạn (nhà cung cấp của bạn, bất kỳ ai truy cập cùng AP không dây như bạn, v.v.) sẽ có thể khôi phục mật khẩu chỉ bằng cách sử dụng trình chuyển đổi BASE64 trực tuyến .
Giao thức HTTPS sẽ làm cho mọi thứ tốt hơn bằng cách thiết lập kết nối được mã hóa trước khi tiêu đề này được gửi, ngăn mật khẩu không bị tiết lộ. Tuy nhiên, điều này chỉ áp dụng nếu người dùng chú ý khi được yêu cầu xác nhận các chứng chỉ không xác định, cho phép các ngoại lệ bảo mật, v.v.
Lưu ý rằng các đối số lệnh có thể có sẵn cho những người dùng khác trên cùng một máy để xem, ví dụ: ps -ef
/ Proc filesystem, trong lịch sử bash của bạn và trong nhật ký thiết bị đầu cuối của bạn (cảm ơn vì nhận xét của @ Lambert lưu ý điều này). cURL trên một số nền tảng cố gắng ẩn mật khẩu, ví dụ như với ps -ef
bạn có thể thấy khoảng trống thay vì mật khẩu. Tuy nhiên, thay vì truyền mật khẩu làm đối số dòng lệnh, việc có cURL trực tiếp nhắc nhập mật khẩu sẽ tốt hơn, như đã thảo luận trên faq cURL .