• Home
  • WordPress
    • Thủ thuật WordPress
    • WordPress plugins
    • WordPress themes
    • Hosting và domain
  • Kiếm tiền
    • Google AdSense
    • Tiếp thị liên kết
    • Rút gọn link
  • Quà tặng
  • Khuyến mãi
  • Đánh giá
  • Dịch vụ
    • WordPress Hosting
    • Cài đặt WordPress
    • Quét mã độc website
    • Tối ưu WordPress
    • Mua theme Paradise
  • Thông báo
  • Liên hệ

WP Căn bản

Kiến thức căn bản cho người dùng WordPress

wordpress-theme-tot-nhat

Trang chủ » WordPress » Thủ thuật WordPress » Sử dụng Nonces để tăng cường bảo mật cho WordPress

Sử dụng Nonces để tăng cường bảo mật cho WordPress

09/05/2015 17/07/2015 Trung Hiếu 0 Bình luận

Sử dụng Nonces để tăng cường bảo mật cho WordPress.

su-dung-nonces-de-tang-cuong-bao-mat-cho-wordpress

Nonces là một trong những cách tốt nhất để bảo vệ người dùng khỏi các mối đe dọa có thể xảy ra. Chúng được sử dụng để bảo đảm hoạt động người dùng được khởi xướng bởi các plugin, chẳng hạn như việc tạo một biểu mẫu (form), xóa bài viết hoặc bất cứ điều gì khác mà có thể làm phơi bày các cơ sở dữ liệu. Trong bài viết này, tôi sẽ mô tả cho các bạn những vấn đề liên quan đến nonces và cách mà bạn có thể sử dụng chúng để làm cho blog/website của mình trở nên an toàn hơn.

Tham khảo thêm:

  • Giới thiệu serie videos bảo mật WordPress từ WPMUDEV
  • Bảo mật blog WordPress của bạn với 5 bước đơn giản
  • Bảo mật WordPress bằng file .htaccess

Tại sao chúng ta cần Nonces?

Hãy tưởng tượng bạn đang viết một plugin cho phép người dùng xóa một bài viết từ front-end. Hiểu một cách đơn giản, cơ chế để xóa một bài viết là chuyển nó đến một liên kết có dạng http://mysite.com/2015/02/12/my-article/?delete=true. Nói cách khác, liên kết đến bài viết này có một chuỗi truy vấn kèm theo.

Đoạn mã của bạn sẽ thực hiện việc kiểm tra trên trang web. Nếu người dùng là Admin, bài viết này sẽ bị xóa và người dùng sẽ được chuyển hướng trở lại trang chính. Điều này có vẻ rất an toàn phải không? Đáng buồn thay, nó là không đủ. Có hai điều bạn cần phải kiểm tra trước khi mỗi hành động được thực hiện: cho phép và ý định. Bạn đã kiểm tra và xác nhận người dùng được phép làm điều đó, nhưng bạn không thể chắc chắn rằng người dùng có thực sự muốn xóa bài viết hay không?

Hãy tưởng tượng, tôi gửi cho bạn một email nói rằng tôi tìm thấy lỗi đánh máy trong một số bài viết của bạn và tôi đã liên kết nó trong nội dung email. Nếu tôi tạo ra một liên kết trong một email, bạn sẽ không thấy mục tiêu thật sự mà liên kết đó hướng tới (nếu không để ý), chỉ thấy phần văn bản có thể click vào. Vì vậy, nếu tôi gắn thêm vào đó một truy vấn có dạng ?delete=true, bạn sẽ vô tình hoàn tất việc xóa một bài viết, mặc dù bạn không muốn làm điều đó.

Đây chính là lúc bạn cần đến nonces. Một nonce là một mã số đặc biệt, được tạo ra ở nguồn của hành động. Khi sử dụng nonces, liên kết có thể có dạng như thế này: http://mysite.com/2015/02/12/my-article/?delete=true&_wpnonce=234283223. Các nonce sẽ luôn luôn khác nhau và tôi sẽ không thể để gửi cho bạn một liên kết đơn giản giống như bên trên, bởi vì quá trình xóa sẽ không diễn ra nếu không có nonce đúng.

Vậy Nonces là gì?

Nonce là từ viết tắt của “number used once” (số được sử dụng một lần). Nonces được sử dụng trong bảo mật dữ liệu bằng cách đính kèm mã số sử dụng một lần vào bên cạnh chúng.

WordPress thực hiện nonces có một chút khác biệt. Bởi vì chúng không phải là những con số và được sử dụng không chỉ một lần, nhưng mục đích và cách sử dụng thì cũng tương tự như vậy. WordPress sử dụng một hash và nonces đôi khi có thể được sử dụng nhiều hơn một lần, nhưng chúng có thời gian hết hạn rất ngắn.

Sử dụng WordPress Nonces như thế nào?

Quá trình này là một công việc gồm hai bước khá đơn giản: bạn tạo một nonce ở nguồn gốc của một hành động (đặt nó vào một liên kết hoặc như là một lĩnh vực ẩn trong một biểu mẫu) và xác nhận nó vào mục tiêu. Bạn sẽ chỉ cần biết một vài chức năng ở đây:

1. Thêm Nonces và Forms:

Để thêm một nonce vào biểu mẫu, bạn sẽ cần phải thêm một lĩnh vực (field) ẩn (gồm một tên và một giá trị). WordPress của bạn sẽ được bảo vệ với chức năng wp_nonce_field ().

Trong hình thức đơn giản nhất, bạn có thể sử dụng nó chỉ với một tham số:

Nó sẽ tạo ra hai trường (hay lĩnh vực) cho bạn, một cho các nonce và một cho referrer:

Chức năng này cho phép bạn tinh chỉnh 4 tham số. Tham số đầu tiên xác định các hành động được thực hiện với các nonces. Nó không hiển thị trong trường này, thay vào đó được chứa trong hash. Tham số thứ hai có thể đổi tên, nó là _wpnonce theo mặc định. Tham số thứ ba là một giá trị boolean kiểm soát việc có kiểm tra referrer hay không (giữ nguyên theo mặc định). Cuối cùng, thứ tư là một boolean quyết định các trường có được lặp lại hay không? – nó được giữ nguyên theo mặc định.

Một nguyên tắc quan trọng mà bạn cần phải chú ý: luôn luôn làm cho tên hành động (các tham số đầu tiên) càng cụ thể càng tốt. Đừng chỉ đặt tên cho nó là “delete-post“, hãy sửa thành “delete-post-[post_ID]“.

Ở đầu bên kia của hành động, bạn sẽ cần phải xác minh các nonce. Đây là nơi tham số hành động của form được tạo ra cho bạn. Để xác minh các nonce, hãy sử dụng đoạn mã đơn giản này:

2. Thêm Nonces vào URL

Đôi khi bạn muốn bắt đầu một hành động thông qua một liên kết, đặc biệt là ở khu vực Admin. Kể từ khi các liên kết cơ bản hoạt động thông qua các thông số truy vấn, bạn có thể dễ dàng chèn nonce vào các liên kết.

Bạn có thể sử dụng wp_nonce_url () để thực hiện việc này. Dưới đây là cách làm:

Kết quả cuối cùng sẽ là một URL có dạng như: http://mysite.com?p=553&_mynonce=7278c82a8f3. Bạn có thể thấy điều này tương tự như những gì chúng ta đã làm với các biểu mẫu (form), sự khác biệt duy nhất là các nonce được chuyển vào trong URL như các tham số GET.

Bạn có thể xác minh các nonce bằng cách sử dụng các phương pháp tương tự như trước. Lần này chúng ta sẽ thêm tên hành động thích hợp với các ID và sử dụng biến GET.

Tổng quan

Nonces thực sự nên được sử dụng bất cứ lúc nào bạn muốn bắt đầu một hành động người dùng nếu không blog/website của bạn sẽ dễ bị tổn thương bởi các cuộc tấn công, đặc biệt là CSRF (Cross Site Request Forgery). Đừng quên rằng nonces chỉ kiểm tra ý định và bạn sẽ cần phải chắc chắn rằng người dùng có quyền thực hiện hành động đó.

Để hiểu rõ hơn, các bạn có thể tham khảo thêm về Nonces tại đây.

Nếu bạn thích bài viết này, hãy subscribe blog của tôi để thường xuyên cập nhật những bài viết hay nhất, mới nhất qua email nhé. Cảm ơn rất nhiều. :)

4 / 5 ( 8 bình chọn )
  • Share on Facebook
  • Tweet on Twitter

Bài viết liên quan

vo-hieu-hoa-recaptcha-tren-web-server-litespeed
Vô hiệu hóa reCAPTCHA của web server LiteSpeed
easy-wp-smtp-dinh-loi-bao-mat-nghiem-trong
Easy WP SMTP dính lỗi bảo mật nghiêm trọng, update ngay
cai-dat-lai-toan-bo-plugin
Cài đặt lại toàn bộ plugin trên website WordPress

Chuyên mục: Thủ thuật WordPress Thẻ: Bảo mật WordPress

dich-vu-cai-dat-website-wordpress-mien-phi

Nói về Trung Hiếu

Một người con của xứ Nghệ, hiện đang sinh sống tại Hà Nội. Theo dõi tôi trên Facebook để cập nhật những tin tức mới nhất liên quan đến WordPress nhé.

Bài viết trước « Sắp xếp lại WordPress Admin Menu với Admin Menu Manager
Bài viết sau Tại sao bạn nên mua domain tại NameCheap? »

Reader Interactions

Trả lời Hủy

Lưu ý:
> Không sử dụng từ khóa trong mục "Tên".
> Hãy sử dụng tên thật và địa chỉ email chính xác.
> Vui lòng bình luận bằng tiếng Việt có dấu.
Mọi bình luận trái quy định sẽ bị gỡ bỏ link hoặc xóa bỏ hoàn toàn.

Sidebar chính

NHẬN BÀI VIẾT QUA EMAIL

Hãy đăng ký ngay để là người đầu tiên nhận được thông báo qua email mỗi khi chúng tôi có bài viết mới!

Đừng quên truy cập vào email của bạn để xác nhận việc đăng ký nhé!

Theo dõi qua mạng xã hội

Dịch vụ WordPress Hosting

dich-vu-wordpress-hosting-gia-re-tot-nhat

Bạn đang tìm gì?

  • WordPress căn bản
  • Bảo mật WordPress
  • Tăng tốc WordPress
  • Sửa lỗi WordPress
  • Thủ thuật Genesis
  • Thủ thuật SEO

Dịch vụ tối ưu WordPress miễn phí

dich-vu-toi-uu-website-wordpress-chat-luong-cao

Bài viết mới nhất

  • Tinh giản WooCommerce giúp website của bạn nhẹ hơn 04/04/2021
  • Tinh giản WordPress giúp website của bạn nhẹ hơn 16/03/2021
  • Trì hoãn tải script của bên thứ ba trong WordPress 10/03/2021
  • Nâng cấp tính năng tìm kiếm mặc định của WordPress 04/03/2021
  • Hướng dẫn sử dụng LiteSpeed Memcached 17/01/2021
  • Hướng dẫn nén ảnh bằng plugin LiteSpeed Cache 08/01/2021

Dịch vụ quét mã độc miễn phí

quet-ma-doc-mien-phi-cho-website

Footer

Bình luận mới nhất

  • Land trong Hướng dẫn cài đặt nhanh WordPress với Softaculous
  • Học Luật trong Tinh giản WordPress giúp website của bạn nhẹ hơn
  • Trung Hiếu trong Cài HTTPS cho WordPress nhanh chóng với Really Simple SSL
  • Land trong Cài HTTPS cho WordPress nhanh chóng với Really Simple SSL

Bình luận nhiều nhất (tháng)

  1. David Do (2)
  2. Hoàng Minh (2)
  3. Học Luật (2)
  4. Kami (2)
  5. Land (2)
  6. Gia Tuấn (1)

Thông tin hữu ích

  • Quy định sử dụng
  • Chính sách bảo mật
  • Bản quyền nội dung

Thống kê WP Căn bản

10 Chuyên mục - 982 Bài viết - 37378 Bình luận
positivessl-trust-seal

Bản quyền © 2014 - 2020 · WP Căn bản · Sử dụng Paradise child theme và dịch vụ WordPress Hosting