Khi chạy một trang web WordPress, bạn muốn giữ nó an toàn để các biểu mẫu, nội dung, dữ liệu và người dùng của bạn được an toàn khỏi các cuộc tấn công và hoạt động độc hại khác. Một cách bạn có thể làm điều đó là sử dụng nonces.
Nonces là mã thông báo một lần được thiết kế để bảo vệ biểu mẫu và URL khỏi một số loại lạm dụng nhất định, như Giả mạo yêu cầu chéo trang web (CSRF). Về cơ bản, một nonce được tạo cho một người dùng nhất định trong một ngữ cảnh nhất định để nó là duy nhất cho không chỉ cài đặt và người dùng WordPress, mà còn cho hành động, đối tượng của hành động và thời gian của hành động.
Vì vậy, giả sử người dùng mở một bài đăng để chỉnh sửa trong bảng điều khiển WordPress của họ, sau đó quyết định xóa nó. Khi gửi yêu cầu xóa nó, WordPress sẽ xác minh xem một nonce được tạo trước đó có mong đợi cho cài đặt, người dùng, mục đích, bài đăng và khoảng thời gian WordPress chính xác này đã được gửi cùng hay không. Sau đó, nó sẽ quyết định xem yêu cầu của người dùng có thể được xử lý an toàn hay không. Nếu nó không thể, thì nó sẽ trả về một thông báo lỗi.
Cơ chế lỗi này được thiết kế để ngăn chặn các lần gửi và yêu cầu lặp đi lặp lại, hết hạn, độc hại hoặc không mong muốn được xử lý trên trang web WordPress của bạn – nhưng nó cũng có thể ngăn người dùng thực gửi biểu mẫu hoặc hoàn thành các hành động khác trên trang web của bạn.
Trong bài đăng này, chúng ta sẽ xem xét kỹ hơn lỗi nonce là gì và tại sao nó xảy ra, sau đó đi qua các cách khác nhau mà bạn có thể khắc phục.
Trong khi nonces là viết tắt của “số được sử dụng một lần”, nonces WordPress thực sự có thể được sử dụng nhiều lần bởi cùng một người dùng – miễn là nó nằm trong vòng đời giới hạn của nonce. Sau khoảng thời gian đó, nonce sẽ được coi là không hợp lệ. Trong WordPress, tuổi thọ mặc định của nonce là một ngày.
Hãy nhớ rằng nonce cũng sẽ được coi là không hợp lệ nếu cài đặt, người dùng, hành động hoặc đối tượng của hành động WordPress bị thay đổi.
Nếu trang web WordPress của bạn xác định rằng nonce không hợp lệ và yêu cầu không thể được xử lý một cách an toàn, nó sẽ gửi một thông báo lỗi trông giống như thế này:
Điều gì gây ra lỗi nonce?
Lỗi nonce được gây ra khi người dùng đưa ra yêu cầu mà không có nonce chính xác được tạo bởi WordPress và được cung cấp cho người dùng. Người dùng có thể đang cố gắng hoàn thành các hành động sau:
- Đăng bài viết hoặc Trang mới
- Tải lên plugin
- Tải lên chủ đề
- Tải lên video hoặc các tệp phương tiện khác
- Tạo người dùng
- Xóa bài viết hoặc Trang
- Tạo thẻ và danh mục
Ví dụ: giả sử bạn triển khai nonces trên trang web của mình thì WordPress sẽ thêm khóa nonce vào cuối URL. Vì vậy, một URL để xóa một bài đăng trên trang web của bạn có thể trông giống như:
http://example.com/wp-admin/users.php?user=2&action=delete&_wpnonce=b192fc4204
Nếu người dùng cố gắng thay thế ID người dùng bằng một giá trị khác, chẳng hạn như “người dùng = 4” hoặc ID hành động bằng một giá trị khác hoặc đăng nhập và đăng xuất, thì nonce sẽ không hợp lệ và cố gắng truy cập liên kết đó sẽ dẫn đến lỗi nonce.
Trong giả thuyết này, vấn đề có thể là người dùng thực sự là một hacker đang cố gắng truy cập vào trang web hoặc nội dung của bạn. Hoặc người dùng có thể hoàn toàn hợp pháp và vấn đề có thể xảy ra với một trong các plugin, chủ đề hoặc tệp WordPress của bạn.
Dưới đây chúng tôi sẽ thảo luận sâu hơn về các nguyên nhân có thể gây ra lỗi nonce và hướng dẫn các cách khác nhau để khắc phục.
Cách sửa lỗi Nonce
1. Làm mới trình duyệt của bạn.
Điều này nghe có vẻ quá dễ dàng. Nhưng như với hầu hết các lỗi, bạn cần đảm bảo rằng bất kỳ vấn đề nào bạn gặp phải không phải là trục trặc tạm thời. Vì vậy, hãy làm mới trình duyệt của bạn và thử lặp lại hành động gây ra lỗi nonce.
Nếu bạn vẫn nhận được thông báo “Bạn có chắc chắn muốn làm điều này không?”, hãy chuyển sang bước tiếp theo.
2. Tạm thời hủy kích hoạt các plugin của bạn.
Một số plugin WordPress nhất định có thể gây ra lỗi nonce trên trang web của bạn nếu chúng không được mã hóa đúng cách với khả năng nonce.
Nếu gần đây bạn đã tải lên một plugin mới và bạn hoặc người dùng của bạn chỉ thấy tải lên lỗi nonce không thành công, hãy thử hủy kích hoạt plugin đó.
Nếu điều đó không giải quyết được lỗi, hãy thử hủy kích hoạt từng plugin của bạn. Nếu lỗi nonce biến mất sau khi hủy kích hoạt plugin, thì bạn có thể liên hệ với nhà phát triển plugin để khắc phục sự cố hoặc tìm một giải pháp thay thế để sử dụng trên trang web của mình.
Nếu lỗi nonce không biến mất, hãy tiếp tục và kích hoạt lại các plugin của bạn và thử bước tiếp theo.
3. Hoàn nguyên về chủ đề mặc định.
Chủ đề của bạn là một thủ phạm khác có thể gây ra lỗi nonce trên trang web của bạn. Hãy thử chuyển trở lại chủ đề mặc định và sau đó gửi lại yêu cầu gây ra lỗi nonce. Nếu nó không xảy ra, thì đó có thể là chủ đề trước đó của bạn đã gây ra sự cố. Trong trường hợp đó, bạn có thể gắn bó với chủ đề mặc định hoặc thử một giải pháp thay thế khác.
Nếu lỗi nonce không biến mất, hãy tiếp tục và cài đặt lại chủ đề của bạn và thử bước tiếp theo.
4. Thay thế các tệp cốt lõi WordPress của bạn.
Nếu các bước trên chưa giải quyết được vấn đề, thì bạn sẽ cần thay thế các tệp cốt lõi WordPress của mình. Có thể các tệp này đã được sửa đổi không đúng cách bởi một plugin hoặc chủ đề, điều này gây ra lỗi nonce.
Để thay thế các tệp cốt lõi WordPress của bạn bằng các tệp sạch, không sửa đổi, hãy làm theo các bước bên dưới.
- Sao lưu trang web của bạn theo cách thủ công hoặc bằng plugin trước.
- Tải về WordPress và giải nén nó trên thiết bị của bạn.
- Đăng nhập vào trang web của bạn thông qua ứng dụng khách FTP.
- Trong thư mục wordpress chính, xóa wp-config-sample.php và thư mục wp-content. Nếu bạn không xóa các tệp này, chúng sẽ ghi đè lên dữ liệu trang web hiện tại của bạn.
- Sử dụng ứng dụng khách FTP của bạn để đặt các tệp lõi WordPress mới trên máy chủ lưu trữ của bạn và thay thế các tệp hiện tại.
Sửa lỗi Nonce
Lỗi Nonce gây khó chịu cho bạn và người dùng của bạn. Bằng cách làm theo các bước trên, hy vọng bạn sẽ giải quyết vấn đề với tác động tối thiểu đến trang web WordPress hoặc UX của mình.
Tham Khảo Thêm
Thiết Kế Web: 15 Thách Thức Phổ Biến Nhất Vào Năm 2023