WordPress Nonce là gì? Cách để ngăn chặn một cuộc tấn công CSRF

Ngày đăng: 15 - 09 - 2021 Lượt xem: 51 lượt

Tấn công CSRF là gì?

Tấn công CSRF (Cross Site Request Forgery) là một kỹ thuật tấn công có khả năng giả mạo người dùng để thực hiện các hoạt động không mong muốn trên website, hay ứng dụng.

Một cuộc tấn công CSRF có khả năng gây ra hậu quả nghiêm trọng cho người dùng hoặc doanh nghiệp, như thay đổi mật khẩu, đánh cắp dữ liệu, phá hoại,…

Để ngăn chặn một kịch bản tấn công bằng kỹ thuật CSRF, WordPress đã có một cơ chế để chống lại vấn đề này bằng Nonce.

Vậy, WordPress Nonce là gì?

WordPress Nonce hay Nonce là một chuỗi ký tự ngẫu nhiên được đính kèm với URL hoặc biểu mẫu (form) để xác minh rằng, hành động được thực hiện bởi chính người dùng đó.

Chuỗi ký tự này được sử dụng một lần và khác nhau đối với mỗi người dùng. Điều đó có nghĩa là không thể làm giả được. Nếu nonce không hợp lệ, WordPress sẽ từ chối yêu cầu.

Sơ đồ hoạt động của nonce

Sơ đồ cho thấy nonce hoạt động như thế nào

Làm thế nào để triển khai WordPress Nonce?

Có 3 cách để tạo WordPress Nonce:

  • wp_create_nonce() – Tạo một nonce đơn giản, sử dụng tuỳ vào mục đích của bạn.
  • wp_nonce_url() – Thêm một tham số _wpnonce vào đường dẫn URL.
  • wp_nonce_field() – Tạo ra một trường input hidden có chứa nonce.

Ví dụ:

<?php
$new_nonce = wp_create_nonce( 'add_product' );
// zxcvbn678

$url = 'https://hocwordpress.vn/';
$nonce_url = wp_nonce_url( $url, 'delete_product' );
// https://hocwordpress.vn/_wpnonce=zxcvbn678

wp_nonce_field( 'change_password' );
// <input id="_wpnonce" name="_wpnonce" type="hidden" value="zxcvbn678" />

Để xác minh nonce, chúng ta sử dụng hàm wp_verify_nonce()

Ví dụ dưới đây xử lý việc gởi biểu mẫu – submit form.

<?php
$nonce = $_POST['_wpnonce'];

if( wp_verify_nonce( $nonce, 'change_password' ) ) {
  // Thành công, tiến hành thay đổi password
  // ...
} else {
  return false; // Huỷ bỏ
}

Tổng kết

CSRF là lỗ hổng phổ biến nhất được tìm thấy trong các plugin và theme WordPress. Qua bài viết này, hi vọng mình đã giúp các bạn ngăn chặn được một cuộc tấn công bằng kỹ thuật CSRF trong tương lai.

Nếu các bạn thấy hay có thể theo dõi chuyên mục thủ thuật wordpress để biết thêm nhiều kiến thức mới nha.

Hãy follow fanpage để nhận được những bài viết mới nhất nhé : Hocwordpress Group

Chúc bạn có những kiến thức về  wordpress thú vị và hay ho !

5 2 votes
Article Rating

guest
0 Comments
Inline Feedbacks
View all comments

Bài viết liên quan

Cách ẩn phiên bản WordPress hiện tại trên website của bạn

Cách ẩn phiên bản WordPress hiện tại trên website của bạn

14 - 10 - 2021

Là CMS phổ biến và mạnh nhất trên Internet, WordPress luôn cố gắng mang lại một hệ thống an...

Làm thế nào để đặt số lượng từ tối thiểu trên bài đăng WordPress

Làm thế nào để đặt số lượng từ tối thiểu trên bài đăng WordPress

08 - 10 - 2021

Nếu bạn muốn giới hạn số từ cho bài đăng trên WordPress thì đây là bài viết dành cho...

Cách cho phép người dùng kiểm duyệt bình luận trên WordPress

Cách cho phép người dùng kiểm duyệt bình luận trên WordPress

04 - 10 - 2021

Các blog lớn thường có số lượng bình luận rất cao, rất khó để quản lý hết. Vì vậy...

Cách liệt kê các bài đăng được lên lịch ở tương lai trong WordPress.

Cách liệt kê các bài đăng được lên lịch ở tương lai trong WordPress.

01 - 10 - 2021

Gần đây, một số bạn đã hỏi mình về cách liệt kê bài đăng tương lai đã lên lịch...

Làm thế nào để khôi phục classic widget trong WordPress?

Làm thế nào để khôi phục classic widget trong WordPress?

26 - 09 - 2021

Sau khi cập nhập lên phiên bản WordPress 5.8, bạn có thể nhận ra WordPress đã mang lại một...

Làm thế nào để thay đổi email của admin trong WordPress mà không cần xác nhận?

Làm thế nào để thay đổi email của admin trong WordPress mà không cần xác nhận?

19 - 09 - 2021

Khi thay đổi email của Admin WordPress, sau khi thực hiện bạn sẽ thấy dòng thông báo "Nếu bạn...

0
Would love your thoughts, please comment.x
()
x