0
0
Lập trình
Admin Team
Admin Teamtechmely

Xây Dựng AuthPress: Từ 2FA Telegram Đến Nền Tảng Bảo Mật WordPress Mở Rộng

Đăng vào 4 tháng trước

• 4 phút đọc

Xây Dựng AuthPress: Từ 2FA Telegram Đến Nền Tảng Bảo Mật WordPress Mở Rộng

Giới Thiệu 🚀

Hệ thống WordPress hiện đang chiếm khoảng 43% tổng số trang web trên Internet. Tuy nhiên, hầu hết các trang web vẫn phụ thuộc vào việc xác thực bằng mật khẩu đơn giản. Mặc dù có nhiều plugin 2FA (xác thực hai yếu tố) có sẵn, nhưng chúng thường gặp một số vấn đề:

  • Giới hạn vào các nhà cung cấp cụ thể
  • Khó mở rộng hoặc tùy chỉnh
  • Không thân thiện với nhà phát triển
  • Thiếu các phương pháp xác thực hiện đại

AuthPress bắt đầu từ một ý tưởng đơn giản: "Liệu tôi có thể nhận mã 2FA cho WordPress qua Telegram không?" Sau ba năm phát triển và nhiều lần cải tiến, nó đã trở thành một nền tảng xác thực toàn diện, thân thiện với nhà phát triển.

Vấn Đề 🔐

Mặc dù có nhiều plugin hỗ trợ 2FA, nhưng hầu hết đều thiếu tính linh hoạt và khả năng mở rộng cho các nhà phát triển. Với AuthPress, chúng tôi đã tạo ra một hệ thống có thể tích hợp nhiều nhà cung cấp khác nhau và dễ dàng tùy chỉnh.

Hành Trình Phát Triển 🌟

Phiên Bản 4.0: Nền Tảng Mở Rộng

Hệ thống hiện hỗ trợ nhiều nhà cung cấp thông qua một kiến trúc rõ ràng:

php Copy
// Hệ thống mở rộng hiện đại
abstract class Abstract_Provider {
    abstract public function send_code($user_id, $code);
    abstract public function verify_code($user_id, $code);
    abstract public function render_user_settings($user_id);
}

// Đăng ký các nhà cung cấp tùy chỉnh
add_filter('authpress_register_providers', function($providers) {
    $providers['my_sms'] = 'MyPlugin\\SMS_Provider';
    $providers['push_notification'] = 'MyPlugin\\Push_Provider';
    return $providers;
});

Kiến Trúc Kỹ Thuật 🏗️

Các Tính Năng Chính

  • Hỗ Trợ Nhiều Nhà Cung Cấp: Telegram, Email, TOTP, Mã Khôi Phục
  • API Mở Rộng: Giao diện rõ ràng cho các nhà cung cấp tùy chỉnh
  • Ghi Nhận Chuyên Nghiệp: Bảng quản lý tích hợp với WordPress
  • An Ninh Trước Hết: Giới hạn tốc độ, lưu trữ mã hóa, bảo vệ chống tấn công brute force

Hệ Thống Nhà Cung Cấp

Mỗi phương pháp xác thực là một lớp nhà cung cấp:

php Copy
class Telegram_Provider extends Abstract_Provider {
    public function send_code($user_id, $code) {
        // Tích hợp API Telegram
        return $this->send_telegram_message($user_id, $code);
    }

    public function verify_code($user_id, $submitted_code) {
        // Kiểm tra mã đã lưu
        return $this->validate_stored_code($user_id, $submitted_code);
    }

    public function render_user_settings($user_id) {
        // Giao diện cấu hình người dùng
        include 'templates/telegram-settings.php';
    }
}

Trải Nghiệm Nhà Phát Triển 👨‍💻

Tạo Nhà Cung Cấp Tùy Chỉnh

Bạn muốn gửi mã SMS qua Twilio? Dưới đây là cách thực hiện đơn giản:

php Copy
class Twilio_SMS_Provider extends Abstract_Provider {
    private $twilio_client;

    public function __construct() {
        $this->twilio_client = new Twilio\Rest\Client($sid, $token);
    }

    public function send_code($user_id, $code) {
        $phone = get_user_meta($user_id, 'phone_number', true);

        return $this->twilio_client->messages->create($phone, [
            'from' => '+1234567890',
            'body' => "Mã đăng nhập WordPress của bạn: {$code}"
        ]);
    }

    public function verify_code($user_id, $code) {
        return parent::verify_stored_code($user_id, $code);
    }
}

Tích Hợp WordPress

Hệ thống tuân thủ các thực tiễn tốt nhất của WordPress:

  • Sử dụng hook và filter rộng rãi
  • Xác thực nonce đúng cách
  • WP_List_Table cho giao diện quản trị
  • Tiêu chuẩn mã hóa WordPress

Những Điều Tiếp Theo? 🔮

Chúng tôi đang làm việc trên:

  • Tích hợp Passkey/WebAuthn (đã trong giai đoạn beta)
  • Hỗ trợ mã token phần cứng (YubiKey, v.v.)

Mã Nguồn Mở & Cộng Đồng 💝

AuthPress được cấp phép theo GPL và có sẵn trên:

  • WordPress.org: Thư mục plugin chính thức
  • GitHub: dueclic/authpress

Góp Phần

Chúng tôi hoan nghênh mọi đóng góp! Đặc biệt:

  • Các triển khai nhà cung cấp mới
  • Kiểm tra an ninh
  • Cải thiện tài liệu
  • Cập nhật bản dịch

Bài Học Rút Ra 📚

  1. Bắt đầu đơn giản, thiết kế để phát triển - Kiến trúc mở rộng đã giúp tiết kiệm rất nhiều công sức tái cấu trúc
  2. An ninh không thể là điều suy nghĩ sau - Được xây dựng từ ngày đầu tiên
  3. Trải nghiệm nhà phát triển rất quan trọng - API rõ ràng dẫn đến hệ sinh thái tốt hơn
  4. Tiêu chuẩn WordPress tồn tại vì lý do - Tuân thủ đã làm mọi thứ dễ dàng hơn

Hãy thử AuthPress trên trang WordPress của bạn và cho tôi biết bạn muốn xây dựng nhà cung cấp tùy chỉnh nào! Hệ thống mở rộng cho phép tích hợp với hầu như bất kỳ dịch vụ xác thực nào.

Bạn muốn thấy phương pháp 2FA nào tiếp theo? Hãy để lại ý tưởng của bạn trong phần bình luận! 👇

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào