Tìm hiểu về WordPress Salts trong wp-config.php

WordPress Salts là một hệ thống bảo mật quan trọng được tích hợp sẵn trong WordPress để bảo vệ thông tin xác thực của người dùng. Chúng là các chuỗi ký tự ngẫu nhiên được sử dụng để mã hóa cookies, session và các dữ liệu nhạy cảm khác trong WordPress.

Tại sao WordPress Salts quan trọng?

Salts giúp mã hóa các cookie xác thực, khiến chúng trở nên vô dụng nếu bị đánh cắp mà không có salt tương ứng.

2. Chống tấn công Rainbow Table

Salts ngăn chặn các cuộc tấn công sử dụng bảng rainbow (rainbow table attacks) bằng cách làm cho mỗi hash trở nên unique.

3. Tăng cường bảo mật Session

Giúp bảo vệ phiên đăng nhập của người dùng khỏi các cuộc tấn công session hijacking.

Các loại Keys và Salts trong wp-config.php

WordPress sử dụng 8 loại keys và salts khác nhau:

// Authentication Unique Keys and Salts
define('AUTH_KEY',         'your-unique-phrase-here');
define('SECURE_AUTH_KEY',  'your-unique-phrase-here');
define('LOGGED_IN_KEY',    'your-unique-phrase-here');
define('NONCE_KEY',        'your-unique-phrase-here');
define('AUTH_SALT',        'your-unique-phrase-here');
define('SECURE_AUTH_SALT', 'your-unique-phrase-here');
define('LOGGED_IN_SALT',   'your-unique-phrase-here');
define('NONCE_SALT',       'your-unique-phrase-here');

Nhiều website để Authentication Keys and Salts như này rất dễ bị hack, nên phải tạo mã code ở cách dưới.

Chi tiết từng loại:

AUTH_KEY: Sử dụng cho xác thực cơ bản

  • Mã hóa auth cookies
  • Bảo vệ thông tin đăng nhập cơ bản

SECURE_AUTH_KEY: Sử dụng cho xác thực bảo mật

  • Áp dụng khi sử dụng HTTPS
  • Tăng cường bảo mật cho kết nối SSL

LOGGED_IN_KEY: Sử dụng cho trạng thái đăng nhập

  • Quản lý cookie “remember me”
  • Duy trì phiên đăng nhập dài hạn

NONCE_KEY: Sử dụng cho WordPress nonces

  • Bảo vệ khỏi CSRF attacks
  • Xác thực các request từ form

Các SALT tương ứng: Bổ sung thêm lớp bảo mật cho mỗi key

Cách hoạt động của WordPress Salts

Có những nền tảng website dựa vào các phiên PHP (PHP sessions) để theo dõi người dùng và phiên đăng nhập của họ. WordPress thì không. Trên WordPress, việc xác minh tất cả người dùng, từ quản trị viên đến người bình luận, được thực hiện bằng cách phân tích cookie hoặc thông tin được lưu trữ trong lịch sử trình duyệt. Mỗi khi một người dùng đăng nhập vào Bảng điều khiển WordPress, một số cookie sẽ được tạo ngay lập tức và sau đó được lưu lại, với sự chấp thuận của người dùng. Các cookie được tạo trông như thế này:

wordpress_[hash]
wordpress_logged_in_[hash]

Chức năng của salt WordPress rất dễ hiểu. Giả sử mật khẩu của bạn là “demo-password”. Đây là một mật khẩu rất đơn giản, có thể bị đoán hoặc hack khá nhanh chóng. Khóa đại diện cho các biến ngẫu nhiên được thêm vào mật khẩu hiện tại của bạn để mã hóa nó. Mỗi khi bạn đăng nhập, mật khẩu sẽ được lưu trữ trong các tệp cookie của trình duyệt để bạn không cần phải nhập thông tin đăng nhập mỗi khi truy cập trang web. Đây là lúc salt keys phát huy tác dụng. Mật khẩu được lưu trữ sẽ trở nên rất khó bị bẻ khóa sau khi bạn mã hóa nó, và điều đó chỉ có thể xảy ra với sự trợ giúp của salt WordPress.

1. Quá trình mã hóa

// Ví dụ
$user_password = 'demo-password';
$salt = AUTH_SALT;
$hashed_password = wp_hash_password($user_password . $salt);

2. Quá trình xác thực

// Khi người dùng đăng nhập
$stored_hash = get_user_password_hash($user_id);
$input_hash = wp_hash_password($input_password . $salt);

if ($stored_hash === $input_hash) {
    // Đăng nhập thành công
    wp_set_auth_cookie($user_id);
}

Cách tạo và cập nhật WordPress Salts

1. Sử dụng WordPress.org API

# Truy cập URL sau để tạo salts mới
https://api.wordpress.org/secret-key/1.1/salt/

Hoặc có thể dùng công cụ do Vũ Trụ Số tạo tại địa chỉ

Mục đích tạo ra công cụ này để tạo secret-key nhanh hơn công cụ chính thức của WordPress

2. Sử dụng WP-CLI

# Tạo salts mới bằng WP-CLI
wp config shuffle-salts

3. Dùng plugin (không khuyến khích)

Plugin Salt Shaker được nhiều người giới thiệu, bạn có thể cài đặt và sử dụng để đổi SALT Keys, tuy nhiên theo cá nhân tôi thấy thực sự không cần thiết dùng plugin, chỉ cần tạo key bằng cách 1, sau đó copy và thay vào file wp-config.php là xong, không cần phải phức tạp vấn đề.

Thay đổi Salts

Tác động khi thay đổi Salts

  • Tất cả người dùng sẽ bị đăng xuất
  • Cookies hiện tại sẽ trở nên không hợp lệ
  • Phải đăng nhập lại

Cách thay đổi WordPress Salts an toàn

  1. Dùng cách 1 để tạo SALT Key
  2. Đăng nhập vào hosting
  3. Mở file wp-config.php lên và dán SALT Keys vào thay cho cái cũ là xong.

Bạn nên:

1. Định kỳ cập nhật

  • Cập nhật salts mỗi 3-6 tháng
  • Cập nhật ngay sau khi phát hiện vi phạm bảo mật
  • Cập nhật khi có thay đổi nhân sự quan trọng

2. Bảo mật file wp-config.php

# .htaccess - Chặn truy cập wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>

Kết luận

WordPress Salts là một phần không thể thiếu trong chiến lược bảo mật WordPress. Việc hiểu rõ cách thức hoạt động, cách cập nhật và quản lý chúng sẽ giúp bạn duy trì một website WordPress an toàn và bảo mật.

Nhớ rằng salts chỉ là một phần trong hệ thống bảo mật tổng thể. Kết hợp với các biện pháp khác như cập nhật thường xuyên, sử dụng HTTPS, backup định kỳ và monitoring liên tục để đảm bảo bảo mật tối đa cho website WordPress của bạn.

5/5 - (44 votes)

Nếu bạn thấy bài viết có ích bạn có thể chia sẻ bài viết này.
Bạn có thể yêu cầu thêm bài viết tại đây
Đã copy
daotiendung

Tiến Dũng Đào chuyên quản lý, vận hành các dịch vụ website. Anh có nhiều năm kinh nghiệm về quản lý máy chủ ảo VPS, Hosting, technical SEO. Đặc biệt yêu thích WordPress với hơn 5 năm phát triển theme và plugin.

Bài viết liên quan