Hướng dẫn php nonce library - thư viện nonce php

Hướng dẫn php nonce library - thư viện nonce php

Nonce là một số hoặc mã thông báo chỉ được sử dụng một lần.

Bạn có thể sử dụng Nonce trong các trang hoặc biểu mẫu của mình để thêm một lớp bảo mật bổ sung cho ứng dụng của bạn và một trong những tính năng của nó là phân biệt con người với các bot.differentiate humans from bots.

Hôm nay, tôi sẽ chỉ cho bạn cách tạo ra một người không đơn giản trong PHP và cách bạn có thể xác nhận nó.

HÃY BẮT ĐẦU NÀO

Đầu tiên, chúng tôi sẽ tạo một lớp sẽ có các phương thức riêng và công khai sẽ tạo và xác nhận sự không chính thức của chúng tôi dựa trên hàm băm bí mật mà chúng tôi sẽ xác định.class that will have private and public methods that will generate and validate our Nonce based on the secret hash which we will define.

LỚP CHÚNG TA

Bây giờ chúng ta cần thiết lập một hàm riêng (phương thức) sẽ tạo các ký tự ngẫu nhiên là muối của chúng ta, tùy thuộc vào các ký tự mà chúng ta sẽ chỉ định trong tham số độ dài của nó.private function (method) that will generate random characters which is our salt, up to the characters that we will specify in its length parameter.

Hãy để chúng tôi làm cho phương pháp này thành một chức năng công khai, khi chúng tôi kiểm tra chạy mã của chúng tôi.

Đây là mã đầy đủ

Hãy để chúng tôi sử dụng từ khóa mới để tạo một thể hiện của lớp và gọi phương thức cersoatesalt ().generateSalt() method.

$nonce = new Nonce();var_dump($nonce->generateSalt(22));

Đây là kết quả của chúng tôi, lưu ý rằng các ký tự ngẫu nhiên được tạo ra theo độ dài chúng tôi đã chỉ định.

Bây giờ chúng ta cần một phương thức riêng tư khác sẽ tận dụng $ _Session, để lưu trữ các bản không được tạo bằng ID biểu mẫu.

Tiếp theo, chúng ta cần tạo ra một phương pháp khác sẽ băm muối, bí mật của chúng ta và thời gian hết hạn cụ thể khi mã thông báo. Sau đó, chúng tôi sẽ tạo ra một người không phải bằng cách tách từng mã thông báo với một dấu hai chấm và lưu trữ nó trong một biến phiên bằng phương pháp Storenonce.hash our salt, our secret, and a specific time of expiry as tokens. Then we will generate a nonce by separating each token with a colon and store it in a session variable using the storeNonce method.

Đây là mã đầy đủ

Hãy để chúng tôi sử dụng từ khóa mới để tạo một thể hiện của lớp và gọi phương thức cersoatesalt ().5 as the first argument (this will be used to generate our salt), form_login as the second argument (this will be the form we wish to use the nonce on), and 10 as the third or last argument (this will be how long our nonce will last for in minutes).

$nonce = generateNonce();
var_dump($nonce->generateNonce(5, "form_login", 10));
var_dump($_SESSION);

Đây là kết quả của chúng tôi, lưu ý rằng các ký tự ngẫu nhiên được tạo ra theo độ dài chúng tôi đã chỉ định.

Bây giờ chúng ta cần một phương thức riêng tư khác sẽ tận dụng $ _Session, để lưu trữ các bản không được tạo bằng ID biểu mẫu.token separated by a colon in the generated nonce, and we have it stored in the session by hashing it with md5().

Tiếp theo, chúng ta cần tạo ra một phương pháp khác sẽ băm muối, bí mật của chúng ta và thời gian hết hạn cụ thể khi mã thông báo. Sau đó, chúng tôi sẽ tạo ra một người không phải bằng cách tách từng mã thông báo với một dấu hai chấm và lưu trữ nó trong một biến phiên bằng phương pháp Storenonce.public method that will verify a nonce and return a boolean (true or false), depending on whether or not the nonce is valid.

Vì vậy, chúng ta hãy gọi phương thức Generatenonce () và chuyển trong 5 làm đối số đầu tiên (điều này sẽ được sử dụng để tạo muối của chúng ta), form_login làm đối số thứ hai (đây sẽ là hình thức chúng ta muốn sử dụng 10 là đối số thứ ba hoặc cuối cùng (đây sẽ là thời gian của chúng tôi sẽ kéo dài trong vài phút).

  • Ở đây, không có giá trị được lưu trữ và giá trị được lưu trữ của nó trong phiên.
  • Bạn có thể thấy rằng chúng ta có mỗi mã thông báo được phân tách bởi một dấu hai chấm trong các bản không được tạo và chúng ta có nó được lưu trữ trong phiên bằng cách băm nó bằng md5 ().
  • Bây giờ chúng ta cần mã hóa một phương thức công khai sẽ xác minh một người không phải là và trả lại boolean (đúng hoặc sai), tùy thuộc vào việc không có hợp lệ hay không.

Trước khi chúng tôi mã hóa phương pháp này, bạn cần hiểu rằng:

Nonce của chúng tôi được lưu trữ trong $ _Session

  • Mã thông báo của chúng tôi được phân tách bằng một dấu hai chấm ($ Salt: $ form_id: $ Time: $ Hash)
  • Chúng tôi sẽ sử dụng cùng một bí mật được sử dụng để tạo ra những người không phải là để xác minh nó.
  • Vì vậy, chúng tôi có một vài điều kiện trong phương pháp trên kiểm tra không. Phương pháp này sẽ chỉ trả về true khi kiểm tra thành công và sai khi một hoặc nhiều kiểm tra không thành công.
  • Đây là các séc:
  • Nếu các mã thông báo không hoàn thành, không hợp lệ

Nếu Nonce không được lưu trữ trong phiên, Nonce không hợp lệpublic function generateSalt() with a private function so that it can only be accessed within our class.

Đây là mã đầy đủ

Hãy để chúng tôi sử dụng từ khóa mới để tạo một thể hiện của lớp và gọi phương thức cersoatesalt ().

Đây là kết quả của chúng tôi, lưu ý rằng các ký tự ngẫu nhiên được tạo ra theo độ dài chúng tôi đã chỉ định.true is returned, it means that the nonce is still valid, but If false is returned, it means that the nonce is invalid.

Bây giờ chúng ta cần một phương thức riêng tư khác sẽ tận dụng $ _Session, để lưu trữ các bản không được tạo bằng ID biểu mẫu.require() keyword.

Tiếp theo, chúng ta cần tạo ra một phương pháp khác sẽ băm muối, bí mật của chúng ta và thời gian hết hạn cụ thể khi mã thông báo. Sau đó, chúng tôi sẽ tạo ra một người không phải bằng cách tách từng mã thông báo với một dấu hai chấm và lưu trữ nó trong một biến phiên bằng phương pháp Storenonce.

Vì vậy, chúng ta hãy gọi phương thức Generatenonce () và chuyển trong 5 làm đối số đầu tiên (điều này sẽ được sử dụng để tạo muối của chúng ta), form_login làm đối số thứ hai (đây sẽ là hình thức chúng ta muốn sử dụng 10 là đối số thứ ba hoặc cuối cùng (đây sẽ là thời gian của chúng tôi sẽ kéo dài trong vài phút).

Ở đây, không có giá trị được lưu trữ và giá trị được lưu trữ của nó trong phiên.

Bạn có thể thấy rằng chúng ta có mỗi mã thông báo được phân tách bởi một dấu hai chấm trong các bản không được tạo và chúng ta có nó được lưu trữ trong phiên bằng cách băm nó bằng md5 ().

Bây giờ chúng ta cần mã hóa một phương thức công khai sẽ xác minh một người không phải là và trả lại boolean (đúng hoặc sai), tùy thuộc vào việc không có hợp lệ hay không.

Trước khi chúng tôi mã hóa phương pháp này, bạn cần hiểu rằng:

Nonce của chúng tôi được lưu trữ trong $ _Session

Mã thông báo của chúng tôi được phân tách bằng một dấu hai chấm ($ Salt: $ form_id: $ Time: $ Hash)

Chúng tôi sẽ sử dụng cùng một bí mật được sử dụng để tạo ra những người không phải là để xác minh nó.

Vì vậy, chúng tôi có một vài điều kiện trong phương pháp trên kiểm tra không. Phương pháp này sẽ chỉ trả về true khi kiểm tra thành công và sai khi một hoặc nhiều kiểm tra không thành công.

Đây là các séc:

Nếu các mã thông báo không hoàn thành, không hợp lệ