Nonce trong WordPress là gì? ~ Kiếm Tiền Online

Sunday, February 4, 2024

Nonce trong WordPress là gì?

WordPress cung cấp một hệ thống nonce dễ tiêu dùng để tạo và xác minh các hàm băm cho các hành động nhất định. Nonce giúp bảo vệ khỏi một số loại tấn công như Cross Site Request Forgery (CSRF)

Nonces là gì?

Theo định nghĩa, nonce là thứ chỉ được tiêu dùng một lần và không lặp lại.

None là những hàm băm được tạo thành từ các con số và chữ cái. Chúng chỉ được tiêu dùng một lần và có vòng đời giới hạn, có nghĩa là sau một khoảng thời gian nhất định chúng sẽ hết hạn tiêu dùng. Trong suốt vòng đời của nó, nonce sẽ vẫn giữ nguyên và sẽ liên quan đến một người dùng và ngữ cảnh cụ thể.

nonce trong wordpress là gì?

Nonce trong WordPress là gì?

Cách Nonces bảo vệ một trang web

Ví dụ: khi người dùng gửi biểu mẫu, một cuộc tấn công CSRF có thể buộc người dùng thực hiện các hành động không mong muốn. Tùy thuộc vào cấp độ truy cập của người dùng liên quan, thiệt hại có thể từ một địa chỉ email bị thay đổi ngay đến toàn bộ trang web bị xâm phạm.

Để tránh điều này, một nonce được thêm vào URL được gửi tương ứng để được đánh giá và chỉ sau đó cho phép hành động hoàn tất nếu giá trị đó chính xác và chưa hết hạn.

Một ví dụ phổ biến về việc tiêu dùng nonce trong WordPress là khi xóa một bài đăng.

nonce delete post

Hành động xóa bài viết này tương ứng với url phía dưới đây nếu không có nonce

https://truongcongthang.com/wp-admin/post.php?post=98&action=trash

Trong trường hợp này, kẻ tấn công có thể tận dụng liên kết không an toàn này khiến bạn vô tình xóa bài đăng của mình khi chỉ cần thay đổi ID của bài viết. Đây được gọi là một cuộc tấn công Cross-Site.

Trong trường hợp trên, nếu bạn thêm nonce vào sẽ dẫn đến phản hồi “403 Forbidden” vì URL của tin tặc sẽ thiếu xác minh bổ sung nonce.

URL mà WordPress thường tạo khi bạn chuẩn bị xóa một bài đăng như sau:

https://truongcongthang.com/wp-admin/post.php?post=98&action=trash&_wpnonce=f29c5da097

_wpnonce=f29c5da097 đảm bảo rằng chỉ bạn mới có thể thực hiện các tác vụ như xóa bài đăng trên trang web của bạn.

Ở mỗi ngữ cảnh cụ thể _wpnonce=f29c5da097 sẽ khác nhau ví dụ, user A sẽ có _wpnonce khác va user B có user khác vì vậy nó đảm bảo website được xác thực và dựa vào quyền có thể thao tác current_user_can()

Nonces và WordPress

Khi quản lý một trang web WordPress, các ký tự không phải do chính WordPress tạo ra để bảo vệ các URL và biểu mẫu của bạn không bị lạm dụng. Vì vậy, trừ khi bạn đang phát triển các chủ đề hoặc plugin, nếu không, bạn sẽ không bao giờ phải lo lắng về các lỗi không cần thiết vì mọi thứ đều do WordPress chăm sóc.

Tuy nhiên, khi xây dựng một chủ đề hoặc plugin với tư cách là một nhà phát triển, bạn nên tự xử lý các nonces bằng cách tiêu dùng các chức năng mà WordPress cung cấp cho mục đích đó.

Để tạo Nonce, bạn có thể tiêu dùng hàm wp_nonce_url() để thêm nonce vào URL, wp_nonce_field() để thêm nonce vào biểu mẫu hoặc wp_create_nonce() nếu bạn muốn tiêu dùng nonce theo cách tùy chỉnh, như trong một đề nghị AJAX.

Khi nói đến việc xác minh các nonces, bạn có thể tiêu dùng hàm check_admin_referer() để xác minh một nonce đã được chuyển trong URL hoặc một biểu mẫu trong màn hình quản trị, hàm check_ajax_referer() sẽ đánh giá nonce và nếu nó không thành công thì theo mặc định sẽ chấm dứt thực thi tập lệnh và hàm wp_verify_nonce() để xác minh một nonce được truyền trong một số ngữ cảnh khác.

Cách tiêu dùng Nonce trong WordPress

Giả sử với link xóa bài như bên trên bằng code thay vì click vào url, mình cần tạo ra 1 nonce, đưa nonce này vào query string, bên trang xử lý sẽ xác nhận nonce thông qua query string.

$nonce = wp_create_nonceundefined' delete_98'); //tạo nonceecho '<a href="http://domain/?action=delete&id=98&_nonce='.$nonce.'">Xóa</a>';

Các bạn thấy đấy, mình đã tạo thêm 1 nonce với $action truyền vào là delete_98. Và mình đã đưa nó vào query string để verify bên trang xử lý. Tên _nonce các bạn có thể đổi lại tùy ý. Lưu ý: với $action các bạn đặt như thế nào thì trang xử lý các bạn phải verify lại như thế đó.

Bên trang xử lý các bạn chỉ cần xác nhận cái nonce này trước khi xử lý. Không hợp lệ thì ngưng xử lý:

ifundefined!wp_verify_nonceundefined$_GET['_nonce'], 'delete_'.$_GET['id'])) exitundefined); //code xử lý ở đây ....

Bên trang xử lý chúng ta verify nonce thông qua hàm wp_verify_nonce. Với $nonce là $_GET[‘_nonce’], và $action là ‘delete_’.$_GET[‘id’]. Vì ở trên nonce được tạo từ ‘delete_1′ nên trang xử lý cần verify đúng $action đó theo dạng delete_{id}.

Thực chất hàm này sẽ tạo ra 1 nonce khác theo $action và so sánh nó với nonce get được.

nonce_field trong form

Trong thực tế code thì form bạn nên tiêu dùng nonce_field cụ thể như ví dụ sau:

<form method="POST">    <?php wp_nonce_field( 'your_nonce_action', 'your_nonce_field' ); ?>    ....</form>

Để xác minh tính hợp lệ của nonce, bạn có thể tiêu dùng wp_verify_nonce()

if ( ! isset( $_POST['your_nonce_field'] )     || ! wp_verify_nonce( $_POST['your_nonce_field'], 'your_nonce_action' ) ) {   // nonce did not verify.} else {   // process form data}

Đơn giản thế thôi, ngoài cách tiêu dùng trên wordpress còn cung cấp các hàm để tạo và đánh giá nonce khác để vận dụng vào từng trường hợp cụ thể.

Kết luận

Cross Site Request Forgery (CSRF) là một lỗ hổng nổi tiếng trong thế giới WordPress và do đó, điều quan trọng là phải tích cực bảo vệ chống lại nó. Nonces rất quan trọng trong việc giúp ngăn chặn cuộc tấn công CSRF và luôn phải được tiêu dùng khi cần thiết.

Related Posts:

  • Tạo tài khoản Admin WordPress trong phpMyAdminTạo tài khoản Admin WordPress trong phpMyAdminTrước đây tôi có viết 1 bài viết giúp bạn tạo tài khoản admin trong WordPress với code PHP nhưng có 1 số khách hàng có nhắn với tôi rằng thêm code PHP vào file functions.php thì s… Read More
  • Theo dõi email gửi đi trong WordPress – Email LogTheo dõi email gửi đi trong WordPress – Email LogNếu bạn cấu hình SMTP để gửi thư trong website WordPress thì đa số các plugin sẽ thu phí thêm tính năng theo dõi các email được gửi đi nên trong bài viết này tôi giới thiệu cho… Read More
  • Nén code WordPress không cần pluginNén code WordPress không cần pluginHiện nay có rất nhiều plugin tối ưu cho website nên có tích hợp sẵn chức năng nén html, css, js cho website của bạn nhưng nếu bạn không muốn dùng plugin thì có thể tiêu dùng code dưới đây để… Read More
  • WordPress thử nghiệm tính năng Live PreviewWordPress thử nghiệm tính năng Live PreviewSáng nay mình có tải 1 số plugin để thay core cho plugin cũ của 1 website của khách bị nhiễm mã độc thì thấy thêm tính năng vô cùng thú vị đó là tính năng Live Preview plugin, nghĩa … Read More
  • TTFB là gì? Cách đánh giá và tối ưu Time To First ByteTTFB là viết tắt của Time To First Byte dịch ra tiếng Việt là thời gian tính đến byte đầu tiên, biểu thị thời gian từ đề nghị trình duyệt của người dùng đến khi nhận byte dữ liệu đầu tiên từ máy chủ.Ngắn gọn là khi người dùng… Read More

0 nhận xét:

Post a Comment

Chăm sóc tóc

DUNG DỊCH TẮM GỘI KHÔ – PH
90.000₫
MẶT NẠ TÓC PHỤC HỒI HƯ TỔN PREMIUM REPAIR MASK 180G – TSUBAKI
225.000₫
BỒ KẾT HOA BƯỞI 300ML – NCT3
340.000₫
DẦU XẢ THẢO DƯỢC BỒ KẾT SẢ CHANH HOA BƯỞI 300ML – TRƯỜNG HƯNG THỊNH
100.000₫
DẦU GỘI THẢO DƯỢC BỒ KẾT SẢ CHANH HOA BƯỞI 300ML – TRƯỜNG HƯNG THỊNH
100.000₫
SERUM DƯỠNG TÓC HOA BƯỞI GIẢM GÃY RỤNG 50ML – POMELO
84.000₫

Quảng cáo

Nổi bật

Cài đặt Thanh Toán Google adsense bằng ngân hàng Vietcombank

Sau khi đã đủ điều kiện rút tiền từ Google Adsense thì bạn cần phải thêm hình thức thanh toán để Google trả tiền cho bạn.Khi kiếm tiền trên ...

a-ads

Máy tính Laptop

44.990.000đ
Laptop LG Gram 2022 17Z90Q-G.AH76A5 (Core-i7 1260P/16GB/512GB/17″ WQXGA/Win 11/Xám)
24.790.000đ
Laptop LG Gram 2021 16ZD90P-G.AX54A5 (i5-1135G7/8GB RAM/512GB SSD/16″WQXGA/Dos/Trắng)
14.590.000đ
Laptop Acer Gaming Aspire 7 A715-42G-R4ST NH.QAYSV.004 (R5 5500U/8GB RAM/256GB SSD/15.6″FHD IPS/GTX1650 4GB/Win10) – Hàng chính hãng
15.190.000đ
Laptop Acer Aspire 3 A315-58G-50S4 (Core i5 1135G7/8GB RAM/512GB/15.6″FHD/MX350 2GB/Win 10/Bạc)
21.990.000đ
Laptop Acer Swift 5 SF514-55TA-59N4 NX.A6SSV.001 (i5-1135G7/16GB RAM/1TB SSD/14″FHD_Touch/Win10/Xanh) – Hàng chính hãng
14.890.000đ
Laptop Acer Aspire 5 A514-54-59QK (Core i5 1135G7/8GB RAM/512GB/14″FHD/Win 11/Vàng)

Vay Online

(x)
(x)
Day noi mi | Hoc noi mi | Noi mi dep | Trung tam day nghe toc | Day cat toc | Day nghe toc | Hoc cat toc | Hoc cat toc o Ha Noi | Hoc cat toc tai Ha Noi | Thuoc chua benh a sung
Dau goi Kafen | Dau xa Kafen | Giao trinh day cat toc | Mua ban rao vat | Dang rao vat | Dien dan rao vat | Rao vat mien phi | Trang rao vat

Mua Hang Gia Re / Cho Dien Tu / Mua Hang Online Uy Tin / Sim So Dep / Mua Hang Online / Dung Cu Cat / Dung Cu Cat Gia Re / Ban Buon Dung Cu Cat / Hoc Cat Toc / Dang Rao Vat / Dien dan Rao Vat / Trang Rao Vat / Day Noi Mi / Rao Vat Cho Tot / Quang Cao Rao Vat / Camera Quan Sat / Cac Website Rao Vat / My Pham Nganh Toc / Phu Kien Nganh Toc / Phuong Phap Tap Gym / Kiem Tien Tren Mang / Trung Tam Day Nghe Toc / VPS Gia Sieu Re / VPS Gia Sieu 10K / Thiet Ke Web Gia Re / Bat Dong San