Khi bạn muốn triển khai ứng dụng của mình ở nơi khác, bạn xây dựng tệp phân phối. Tiêu chuẩn hiện tại cho phân phối Python là định dạng bánh xe, với phần mở rộng
$ python setup.py bdist_wheel1. Đảm bảo thư viện bánh xe được cài đặt trước
$ pip install wheel
Chạy
$ python setup.py bdist_wheel2 bằng Python cung cấp cho bạn một công cụ dòng lệnh để đưa ra các lệnh liên quan đến xây dựng. Lệnh
$ python setup.py bdist_wheel0 sẽ tạo tệp phân phối bánh xe
$ python setup.py bdist_wheel
Bạn có thể tìm thấy tệp trong
$ python setup.py bdist_wheel1. Tên tệp có định dạng {project name}-{version}-{python tag} -{abi tag}-{platform tag}
Sao chép tệp này sang một máy khác, thiết lập một virtualenv mới , sau đó cài đặt tệp bằng
$ python setup.py bdist_wheel2.
$ pip install flaskr-1.0.0-py3-none-any.whl
Pip sẽ cài đặt dự án của bạn cùng với các phụ thuộc của nó
Vì đây là một máy khác, bạn cần chạy lại
$ python setup.py bdist_wheel3 để tạo cơ sở dữ liệu trong thư mục phiên bản
$ flask --app flaskr init-db
Khi Flask phát hiện ra rằng nó đã được cài đặt [không ở chế độ có thể chỉnh sửa], nó sẽ sử dụng một thư mục khác cho thư mục phiên bản. Thay vào đó, bạn có thể tìm thấy nó tại
$ python setup.py bdist_wheel4
Định cấu hình Khóa bí mật¶
Khi bắt đầu hướng dẫn, bạn đã đặt giá trị mặc định cho
$ python setup.py bdist_wheel5. Điều này nên được thay đổi thành một số byte ngẫu nhiên trong sản xuất. Mặt khác, những kẻ tấn công có thể sử dụng khóa
$ python setup.py bdist_wheel6 công khai để sửa đổi cookie phiên hoặc bất kỳ thứ gì khác sử dụng khóa bí mật
Bạn có thể sử dụng lệnh sau để xuất khóa bí mật ngẫu nhiên
$ python setup.py bdist_wheel1
Tạo tệp
$ python setup.py bdist_wheel7 trong thư mục cá thể mà nhà máy sẽ đọc từ đó nếu nó tồn tại. Sao chép giá trị được tạo vào nó
$ python setup.py bdist_wheel
8 ¶
$ python setup.py bdist_wheel4
Bạn cũng có thể đặt bất kỳ cấu hình cần thiết nào khác tại đây, mặc dù
$ python setup.py bdist_wheel5 là cấu hình duy nhất cần thiết cho Flaskr
Chạy với Máy chủ sản xuất¶
Khi chạy công khai thay vì trong quá trình phát triển, bạn không nên sử dụng máy chủ phát triển tích hợp [
$ pip install flaskr-1.0.0-py3-none-any.whl0]. Máy chủ phát triển do Werkzeug cung cấp để thuận tiện, nhưng không được thiết kế để hoạt động đặc biệt hiệu quả, ổn định hoặc an toàn
Thay vào đó, hãy sử dụng máy chủ WSGI sản xuất. Ví dụ: để sử dụng Waitress, trước tiên hãy cài đặt nó trong môi trường ảo
$ python setup.py bdist_wheel7
Bạn cần nói với Waitress về đơn đăng ký của mình, nhưng nó không sử dụng
$ pip install flaskr-1.0.0-py3-none-any.whl1 như
$ pip install flaskr-1.0.0-py3-none-any.whl0. Bạn cần yêu cầu nó nhập và gọi nhà máy ứng dụng để lấy một đối tượng ứng dụng
Trăn 3. 6 đã giới thiệu một mô-đun bí mật để tạo các số ngẫu nhiên mạnh mẽ và an toàn. Trong bài học này, bạn sẽ học cách sử dụng các hàm mô-đun bí mật và lớp
$ python setup.py bdist_wheel3 để tạo các số, dữ liệu, URL và mã thông báo ngẫu nhiên một cách bảo mật và an toàn
Cũng thấy
- Bài tập tạo dữ liệu ngẫu nhiên trong Python
- Python tạo dữ liệu ngẫu nhiên Quiz
Mục lục
- Tại sao nên sử dụng mô-đun bí mật
- Bí mật lớp học. hệ thốngngẫu nhiên
- Bí mật Chức năng mô-đun
- thứ hạng bên dưới[n]
- lựa chọn [dãy]
- randbit[k]
- Tạo mã thông báo bảo mật bằng mô-đun bí mật
- Ví dụ để tạo mã thông báo an toàn
- Nên sử dụng bao nhiêu byte mã thông báo
- Ví dụ thực tế về mô-đun bí mật
- Bước tiếp theo
Tại sao nên sử dụng mô-đun bí mật
Trình tạo ngẫu nhiên an toàn bằng mật mã tạo dữ liệu ngẫu nhiên bằng các phương pháp đồng bộ hóa để đảm bảo rằng không có hai quy trình nào có thể nhận được cùng một dữ liệu đồng thời
Trình tạo ngẫu nhiên được cung cấp bởi mô-đun ngẫu nhiên Python là trình tạo số giả ngẫu nhiên không bảo mật bằng mật mã. Kết quả là mô-đun bí mật được thêm vào Python 3. 6 trở đi để bảo mật trình tạo số ngẫu nhiên
Trước Python 3. 6, chúng ta có lớp Random[] và SystemRandom để tạo mã ngẫu nhiên an toàn bằng mật mã
Mô-đun bí mật là CSPRNG, tôi. e. , Trình tạo số giả ngẫu nhiên mạnh bằng mật mã. Nó được sử dụng để tạo ra các số ngẫu nhiên an toàn và hữu ích trong các ứng dụng nhạy cảm về bảo mật. PEP – 0506 được thiết kế để thêm mô-đun secret vào thư viện chuẩn Python
Sử dụng mô-đun bí mật để tuân theo các chức năng tiêu chuẩn liên quan đến bảo mật
- Tạo số ngẫu nhiên,
- Tạo mật khẩu và OTP
- mã thông báo ngẫu nhiên
- Khôi phục mật khẩu URL an toàn và khóa phiên
Ghi chú. Mô-đun bí mật chỉ có trong Python 3. 6 trở lên. Nếu bạn đang sử dụng phiên bản Python cũ hơn, vui lòng tham khảo Cách bảo mật trình tạo ngẫu nhiên trong Python
Mô-đun bí mật dựa trên
$ python setup.py bdist_wheel4 và
$ python setup.py bdist_wheel5, một giao diện cho nguồn mã hóa ngẫu nhiên tốt nhất của hệ điều hành
- Trên windows,
$ python setup.py bdist_wheel
4 sử dụng nội bộ CryptGenRandom[] - Linux3. 17 trở lên, cuộc gọi tòa nhà
$ python setup.py bdist_wheel
01 được sử dụng khi khả dụng - Trên OpenBSD 5. 6 trở lên, hàm C
$ python setup.py bdist_wheel
02 được sử dụng
Hãy xem cách sử dụng mô-đun bí mật
Lớp $ python setup.py bdist_wheel
03
- Lớp tạo số ngẫu nhiên an toàn bằng các nguồn chất lượng cao nhất do hệ điều hành cung cấp
- Sử dụng lớp
$ python setup.py bdist_wheel
03, chúng ta có thể sử dụng tất cả các chức năng của một mô-đun ngẫu nhiên - Trước mô-đun bí mật, chúng tôi đã sử dụng lớp
$ python setup.py bdist_wheel
05 để bảo mật dữ liệu ngẫu nhiên bằng mật mã. Cũng có thể truy cập cùng một lớp bằng cách sử dụng mô-đun bí mật. Chỉ cần thực thi$ python setup.py bdist_wheel
3 và nó sẽ trả về phiên bản của trình tạo ngẫu nhiên an toàn
Hãy xem ví dụ về cách sử dụng lớp
$ python setup.py bdist_wheel03 để bảo vệ trình tạo ngẫu nhiên
$ python setup.py bdist_wheel6
Bí mật Chức năng mô-đun
Hãy xem cách sử dụng các chức năng mô-đun bí mật
Chức năng Mô tả$ python setup.py bdist_wheel3Nhận một thể hiện của trình tạo ngẫu nhiên an toàn
$ python setup.py bdist_wheel09Tạo một số nguyên ngẫu nhiên an toàn
$ python setup.py bdist_wheel80Trả về một phần tử ngẫu nhiên an toàn từ một chuỗi không trống
$ python setup.py bdist_wheel81trả về một số nguyên không dấu an toàn với k bit ngẫu nhiên
$ python setup.py bdist_wheel82Trả về một chuỗi byte ngẫu nhiên an toàn
$ python setup.py bdist_wheel83Trả về một chuỗi văn bản ngẫu nhiên an toàn, ở định dạng thập lục phân
$ python setup.py bdist_wheel84Trả về một URL ngẫu nhiên an toàn-
thứ hạng bên dưới[n]
- Sử dụng hàm
$ python setup.py bdist_wheel
86 để tạo số nguyên an toàn - Hàm này trả về một số nguyên ngẫu nhiên an toàn trong phạm vi [0, n]. Ở đây
$ python setup.py bdist_wheel
87 là giới hạn trên độc quyền - 0 là số bắt đầu trong dải ô và
$ python setup.py bdist_wheel
87 là số cuối cùng - Ví dụ:
$ python setup.py bdist_wheel
89 tạo một số ngẫu nhiên duy nhất từ 0 đến 9
Thí dụ
$ python setup.py bdist_wheel0
lựa chọn [dãy]
Phương thức
$ python setup.py bdist_wheel90 trả về một phần tử được chọn ngẫu nhiên an toàn từ một chuỗi không trống. Ở đây trình tự có thể là danh sách, bộ hoặc chuỗi
Thí dụ
$ python setup.py bdist_wheel8
randbit[k]
- Phương thức này trả về một số nguyên không dấu an toàn với
$ python setup.py bdist_wheel
91 bit ngẫu nhiên - Hàm này dùng để tạo một mặt nạ bit ngẫu nhiên chứa
$ python setup.py bdist_wheel
92 bit được đặt [điều này không giống với việc tạo một số nguyên ngẫu nhiên vì không đảm bảo rằng nó có ____392 bit được đặt trong đó] - Một số ngẫu nhiên được tạo bằng cách sử dụng
$ python setup.py bdist_wheel
94 sẽ an toàn hơn
Nó tạo ra một số nguyên ngẫu nhiên trong phạm vi bit
- Nếu
$ python setup.py bdist_wheel
95 thì Số nguyên không dấu Từ 0 đến 15 $ python setup.py bdist_wheel
96 sau đó Số nguyên không dấu Từ 0 đến 255- Nếu
$ python setup.py bdist_wheel
97 thì Số nguyên không dấu Từ 0 đến 65,535, v.v.
Hãy xem ví dụ
$ python setup.py bdist_wheel9
Tạo mã thông báo bảo mật bằng mô-đun bí mật
Mô-đun bí mật cung cấp các chức năng tạo mã thông báo bảo mật, hữu ích cho các ứng dụng tạo mã thông báo đặt lại mật khẩu và URL khó đoán
Sử dụng các chức năng sau để tạo mã thông báo bảo mật
$ python setup.py bdist_wheel
82. Trả về chuỗi byte ngẫu nhiên an toàn chứa số byte. Nếu$ python setup.py bdist_wheel
99 không được cung cấp, một giá trị mặc định hợp lý sẽ được sử dụng$ pip install flaskr-1.0.0-py3-none-any.whl
10. Trả về một chuỗi văn bản ngẫu nhiên an toàn ở định dạng thập lục phân. Chuỗi có$ python setup.py bdist_wheel
99 byte ngẫu nhiên và mỗi byte được chuyển đổi thành hai chữ số hex. Nếu n-byte không được cung cấp, một giá trị mặc định hợp lý sẽ được sử dụng$ pip install flaskr-1.0.0-py3-none-any.whl
12. Trả về chuỗi văn bản ngẫu nhiên an toàn cho URL, chứa n-byte byte ngẫu nhiên. Sử dụng phương pháp này để tạo các URL khó đoán an toàn
Ví dụ để tạo mã thông báo an toàn
$ pip install flaskr-1.0.0-py3-none-any.whl1
đầu ra
$ pip install flaskr-1.0.0-py3-none-any.whl5
Nên sử dụng bao nhiêu byte mã thông báo
Mã thông báo cần phải có đủ tính ngẫu nhiên Để bảo vệ chống lại các cuộc tấn công vũ phu và tấn công thời gian. Theo các chuyên gia, 32 byte [256 bit] ngẫu nhiên là đủ để bảo đảm chống lại các cuộc tấn công vũ phu. Bạn nên chọn kích thước byte theo yêu cầu của bạn
Giảm thời gian tấn công bằng cách sử dụng so sánh_digest[a, b]
Để giảm nguy cơ bị tấn công theo thời gian, mô-đun bí mật có chức năng
$ pip install flaskr-1.0.0-py3-none-any.whl13. Hàm này trả về
$ pip install flaskr-1.0.0-py3-none-any.whl14 nếu chuỗi
$ pip install flaskr-1.0.0-py3-none-any.whl15 và
$ pip install flaskr-1.0.0-py3-none-any.whl16 bằng nhau, nếu không thì Sai để giảm nguy cơ tấn công theo thời gian
Ví dụ thực tế về mô-đun bí mật
Hãy xem ví dụ ngay bây giờ. Trong ví dụ này, chúng tôi tạo một mật khẩu tạm thời và gửi mật khẩu này trên một URL tạm thời khó đoán để khách hàng có thể đặt lại mật khẩu của mình bằng URL này
bước. –
- Tạo mật khẩu gồm 10 ký tự chữ và số với ít nhất một ký tự chữ thường, ít nhất một ký tự chữ hoa, ít nhất một chữ số và một ký hiệu đặc biệt
- Tạo một URL tạm thời
Thí dụ
$ python setup.py bdist_wheel0
Bước tiếp theo
Để thực hành những gì bạn đã học trong bài viết này, tôi đã tạo Bài tập tạo dữ liệu ngẫu nhiên Python và Bài kiểm tra tạo dữ liệu ngẫu nhiên Python để kiểm tra các khái niệm tạo dữ liệu ngẫu nhiên của bạn