Có một vài tùy chọn để lưu trữ mật khẩu và các bí mật khác mà chương trình Python cần sử dụng, đặc biệt là một chương trình cần chạy trong nền nơi không thể yêu cầu người dùng nhập mật khẩu. Show
Vấn đề cần tránh:
Tùy chọn 1: SSHĐây không phải lúc nào cũng là một lựa chọn, nhưng nó có lẽ là tốt nhất. Khóa riêng của bạn không bao giờ được truyền qua mạng, SSH chỉ chạy các tính toán toán học để chứng minh rằng bạn có khóa phù hợp. Để làm cho nó hoạt động, bạn cần như sau:
Tùy chọn 2: Biến môi trườngĐây là đơn giản nhất, vì vậy nó có thể là một nơi tốt để bắt đầu. Nó được mô tả tốt trong ứng dụng mười hai yếu tố. Ý tưởng cơ bản là mã nguồn của bạn chỉ cần lấy mật khẩu hoặc các bí mật khác từ các biến môi trường và sau đó bạn định cấu hình các biến môi trường trên mỗi hệ thống nơi bạn chạy chương trình. Nó cũng có thể là một liên lạc tốt đẹp nếu bạn sử dụng các giá trị mặc định sẽ hoạt động cho hầu hết các nhà phát triển. Bạn phải cân bằng điều đó so với việc làm cho phần mềm của bạn "an toàn theo mặc định". Dưới đây là một ví dụ kéo máy chủ, tên người dùng và mật khẩu từ các biến môi trường.
Tra cứu cách đặt các biến môi trường trong hệ điều hành của bạn và xem xét chạy dịch vụ trong tài khoản của chính nó. Bằng cách đó, bạn không có dữ liệu nhạy cảm trong các biến môi trường khi bạn chạy các chương trình trong tài khoản của riêng bạn. Khi bạn thiết lập các biến môi trường đó, hãy cẩn thận hơn rằng người dùng khác không thể đọc chúng. Kiểm tra quyền tệp, ví dụ. Tất nhiên, bất kỳ người dùng nào có quyền root sẽ có thể đọc chúng, nhưng điều đó không thể được giúp đỡ. Nếu bạn đang sử dụng SystemD, hãy xem đơn vị dịch vụ và cẩn thận sử dụng Tùy chọn 3: Tệp cấu hìnhĐiều này rất giống với các biến môi trường, nhưng bạn đọc các bí mật từ một tệp văn bản. Tôi vẫn tìm thấy các biến môi trường linh hoạt hơn cho những thứ như công cụ triển khai và máy chủ tích hợp liên tục. Nếu bạn quyết định sử dụng tệp cấu hình, Python sẽ hỗ trợ một số định dạng trong thư viện tiêu chuẩn, như JSON, INI, NETRC và XML. Bạn cũng có thể tìm thấy các gói bên ngoài như Pyyaml và Toml. Cá nhân, tôi thấy JSON và YAML đơn giản nhất để sử dụng và YAML cho phép bình luận. Ba điều cần xem xét với các tệp cấu hình:
Tùy chọn 4: Mô -đun PythonMột số dự án chỉ đưa bí mật của họ vào một mô -đun Python.
Sau đó nhập mô -đun đó để có được các giá trị.
Một dự án sử dụng kỹ thuật này là Django. Rõ ràng, bạn không nên cam kết Tôi thấy một vài vấn đề với kỹ thuật này:
Nếu dự án của bạn đã sử dụng kỹ thuật này, thật dễ dàng để chuyển sang các biến môi trường. Chỉ cần di chuyển tất cả các giá trị cài đặt sang các biến môi trường và thay đổi mô -đun Python để đọc từ các biến môi trường đó. Làm thế nào để bạn lưu thông tin đăng nhập trong Python?Chúng tôi sẽ thảo luận về 3 cách khác nhau để lưu trữ thông tin đăng nhập và đọc chúng bằng Python ... Lưu trữ chúng dưới dạng các biến hệ thống .. Lưu trữ chúng như các biến trong môi trường ảo của bạn .. Lưu trữ chúng trong tệp .ENV .. Cách thuận tiện nhất .. Làm cách nào để tạo thông tin đăng nhập trong Python?Thêm một trình tạo tệp thông tin xác thực vào tập lệnh.. Lưu ý: Tất cả các mô-đun được sử dụng đều được tích hợp sẵn với Python, do đó không cần phải cài đặt bên ngoài .. CreatedCred.py -. Output:. Output:. Và bây giờ nếu bạn đã đọc các tập lệnh đúng, bạn có thể đã thấy một tệp 'hết hạn.py' .. Thông tin đăng nhập của người dùng được lưu trữ như thế nào?Nói chung, với cơ sở dữ liệu, thông tin đăng nhập được lưu trữ trong các bảng độc quyền được tạo bởi ứng dụng quản lý người dùng.in proprietary tables created by the user management application.
Làm thế nào để bạn đặt một mật khẩu trên một tệp trong Python?Bảo vệ một tài liệu Word bằng mật khẩu trong Python.. Đầu tiên, tải tài liệu từ bằng lớp tài liệu .. Tạo một đối tượng của lớp OoxMLSaveOptions (để lưu ở định dạng DOC, sử dụng lớp docsaveoptions thay thế) .. Đặt mật khẩu bằng OoxMLSaveOptions.Tài sản mật khẩu .. Cuối cùng, lưu tài liệu từ được bảo vệ bằng tài liệu .. |