Khi phát triển ứng dụng web, bảo mật luôn là một yếu tố quan trọng cần được chú trọng. Một trong những vấn đề phổ biến mà các lập trình viên phải đối mặt là việc người dùng có thể dễ dàng xem mã nguồn của trang web thông qua tính năng “View Source” trên trình duyệt. Điều này có thể dẫn đến rủi ro lộ thông tin nhạy cảm như khóa API, mật khẩu, hoặc các thông tin bảo mật khác. Để bảo vệ mã nguồn và tăng cường an ninh, việc mã hóa hoặc ẩn đi các đoạn mã quan trọng là một giải pháp hữu ích.
Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách mã hóa mã nguồn để người dùng không thể dễ dàng tiếp cận thông tin nhạy cảm khi sử dụng tính năng “View Source”. Chúng ta sẽ cùng tìm hiểu các phương pháp hiệu quả, từ việc sử dụng mã hóa cơ bản đến các kỹ thuật bảo mật tiên tiến, giúp bạn bảo vệ ứng dụng web của mình một cách an toàn hơn.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | // Minify HTML Output function minify_html($buffer) { // Các biểu thức chính quy để tìm và thay thế các khoảng trắng không cần thiết $search = array( '/\>[^\S ]+/s', // Xóa khoảng trắng thừa sau dấu `>` '/[^\S ]+\</s', // Xóa khoảng trắng thừa trước dấu `<` '/(\s)+/s' // Thay thế nhiều khoảng trắng bằng một khoảng trắng duy nhất ); $replace = array('>', '<', '\\1'); $buffer = preg_replace($search, $replace, $buffer); return $buffer; } // Bắt đầu việc nén HTML function start_buffering() { ob_start("minify_html"); } // Kết thúc việc nén HTML và trả về kết quả function end_buffering() { ob_end_flush(); } // Sử dụng các hàm trên trong WordPress để nén HTML add_action('wp_head', 'start_buffering', 1); add_action('wp_footer', 'end_buffering', 9999); // Mã hóa URL bằng base64 function encode_url($url) { return base64_encode($url); } // Kiểm tra nếu URL là của cùng một miền (tránh mã hóa các liên kết ngoài) function is_internal_link($url) { $home_url = home_url(); // Lấy URL gốc của trang web return strpos($url, $home_url) === 0; // Kiểm tra nếu URL bắt đầu với home_url() - tức là liên kết nội bộ } // Mã hóa các liên kết trong nội dung bài viết (không mã hóa JS/CSS/ liên kết ngoài) function encrypt_links_in_content($content) { // Tìm tất cả các liên kết href, src, và url() trong CSS $patterns = array( '/href=["\'](https?:\/\/[^\s"\'<>]+)["\']/', // Mã hóa các liên kết href '/src=["\'](https?:\/\/[^\s"\'<>]+)["\']/', // Mã hóa các đường dẫn src (ví dụ: ảnh, js, css) '/url\(["\'](https?:\/\/[^\s"\'<>]+)["\']\)/', // Mã hóa các đường dẫn trong CSS (chẳng hạn background-image) ); foreach ($patterns as $pattern) { preg_match_all($pattern, $content, $matches); if (!empty($matches[1])) { foreach ($matches[1] as $link) { // Chỉ mã hóa các liên kết nội bộ, tránh mã hóa liên kết ngoài như YouTube, ảnh từ các trang khác if (is_internal_link($link) && !preg_match('/\.(css|js)$/i', $link)) { $encoded_link = encode_url($link); // Mã hóa liên kết $content = str_replace($link, $encoded_link, $content); // Thay thế bằng liên kết đã mã hóa } } } } return $content; } // Áp dụng mã hóa cho nội dung bài viết, tiêu đề và các widget add_filter('the_content', 'encrypt_links_in_content'); add_filter('the_title', 'encrypt_links_in_content'); add_filter('widget_text', 'encrypt_links_in_content'); // Giải mã URL và chuyển hướng người dùng khi họ nhấp vào liên kết mã hóa function decode_and_redirect() { if (isset($_GET['encoded_url'])) { $encoded_url = $_GET['encoded_url']; $decoded_url = base64_decode($encoded_url); // Kiểm tra URL hợp lệ trước khi chuyển hướng if (filter_var($decoded_url, FILTER_VALIDATE_URL)) { wp_redirect($decoded_url); // Chuyển hướng đến URL đã giải mã exit; } } } // Thực hiện giải mã và chuyển hướng khi người dùng nhấp vào liên kết mã hóa add_action('template_redirect', 'decode_and_redirect'); |
- Hướng dẫn redirect(Điều hướng) về trang cũ sau khi đăng nhập trong WooCommerce
- Share full code website theme wordpress mỹ phẩm cực đẹp
- Hướng dẫn và chia sẻ code thêm nút xóa và tăng giảm số lượng sản phẩm trong trang thanh toán WooCommerce cho Flatsome
- [Thủ Thuật WordPress] Code thu gọn bài viết trong WordPress cực đẹp, đơn giản
- 20+ chức năng có thể thêm vào trang thanh toán (Checkout) của WordPress