Làm thế nào là sử dụng mật khẩu MySQL từ dòng lệnh không an toàn?


12

Tôi đã có một vài công cụ BASH sử dụng mysql -e "{command}"chức năng này. Nhập mật khẩu mỗi khi tôi sử dụng các công cụ này sẽ là một nỗi đau, vì vậy, để tránh việc mật khẩu được ghi trong tệp văn bản gốc có mã, tôi lưu nó vào bộ nhớ (sử dụng read -s) và để BASH đọc nó bất cứ khi nào nó chạy các lệnh.

Mysql vẫn nghĩ rằng mật khẩu đang được gửi qua dòng lệnh (bởi vì, theo cách nói, nó là như vậy) và vẫn gây ra lỗi cho tôi "Sử dụng mật khẩu trên giao diện dòng lệnh có thể không an toàn."

Đối với mục đích của tôi, tôi không cần phải chặn thông điệp này. Những gì tôi cần biết là, cái gì có thể làm cho nó không an toàn? Mật khẩu không bao giờ có thể nhìn thấy được về mặt vật lý, vì vậy việc lướt vai không thể thực hiện được và thậm chí ai đó đoán mật khẩu SSH của tôi sẽ không thể thực hiện được vì nó được lưu trong bộ nhớ thay vì trong chính các tập lệnh. Là một cuộc tấn công trung gian hoặc một cái gì đó tương tự có thể?


8
Đặt nó trong ~/.my.cnf ví dụ Bạn có thể chỉ định mỗi máy chủ bằng cách thực hiện, [client<hostname>]ví dụ: [clientlocalhost]các công cụ MySQL sẽ sử dụng nó tự động để dễ dàng và an toàn hơn
AmazingDreams

Làm thế nào để bạn bashđọc nó khi bạn chạy lệnh? Nếu bạn làm mysql -p"$pass"thì bất cứ ai cũng có thể nhìn thấy nó trong ps.
Barmar

Câu trả lời:


26

Bất cứ ai có thể thấy các biến môi trường của bạn (bao gồm các chương trình bạn chạy) đều có thể thấy mật khẩu. Và bất cứ ai có thể xem các quy trình của bạn đều có thể thấy dòng lệnh được sử dụng để chạy chúng, bao gồm các tham số.

Vì vậy, đối với một hộp mà chỉ có bạn đăng nhập, rủi ro có thể là không đáng kể. Nhưng đối với một cuộc tấn công nhắm mục tiêu vào cá nhân bạn, đây là một vectơ tấn công tầm thường trong sơ đồ lớn của mọi thứ.


22
Cũng như ai đó đang xem của bạn ~/.history, v.v.
ivanivan

Không đề cập đến HTOP và các tiện ích tương tự hàng đầu tương tự trước khi chúng được che dấu. Rất nhiều tập lệnh cũng không sử dụng biến môi trường $ PASS, v.v. trên cơ sở người dùng chỉ đọc hoặc thiếu quyền. Trên một người dùng độc lập có vẻ như không có vấn đề gì.
mckenzm

1
Trường hợp câu hỏi nói bất cứ điều gì về các biến môi trường? Biến Shell không được đưa vào môi trường trừ khi bạn xuất chúng.
Barmar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.