CINXE.COM
Đăng nhập Tuổi Trẻ
<!DOCTYPE html> <html lang="en"> <head> <link rel="icon" href="https://sso.tuoitre.vn/favicon.ico" type="image/x-icon"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="csrf-token" content="YdcnKyFOWgtkGbrvyuhJPOXMZCRvZ2kJzknqTFKN"> <title>Đăng nhập Tuổi Trẻ</title> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,300;0,400;0,500;0,700;0,900;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet"> <link rel="stylesheet" href="/css/bootstrap5.css?id=2de49e670cc4541d67868b49062359e1"> <link rel="stylesheet" href="/css/v2-style1.css?id=7ba6960fe41086f4e7feed0b2473d55d"> <link rel="stylesheet" href="/css/v2-style2-custom.css?id=74859c2100054432a8714e162a42063e"> <script src="/js/app.js?id=03d3e466f5696ed27bcc53d085f68d6f"></script> <script src="/js/jquery.js?id=e810f78d0374fc6048b65c889470d17d"></script> <script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script> <style> .loader-page { position: fixed; background-color: black; width: 100%; height: 100%; z-index: 9999; opacity: 0.3; color: #ffffff; top: 0; left: 0; } .txt-rule { position: relative; padding: 50px; } .txt-rule .btn-close { outline: none; box-shadow: none; position: absolute; right: 15px; top: 15px; } .txt-rule h1 { font-size: 24px; font-weight: 700; text-align: center; margin-bottom: 20px; } .txt-rule h2 { font-size: 20px; font-weight: 700; margin-bottom: 14px; } .txt-rule h3 { font-size: 16px; font-weight: 700; margin-bottom: 10px; } .txt-rule .red { text-decoration: line-through; } @media only screen and (max-width: 600px) { .txt-rule { padding-left: 20px; padding-right: 20px; } } </style> <script type="text/javascript"> // 1. TTO GA4 (function(w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-KG7C9D4'); </script> <script> // 2.TTO Google Universal Analytics (function(w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-KFJP3N'); </script> </head> <body style="max-height: 4000px;"> <div class="d-flex flex-column justify-content-center align-items-center loader-page d-none" id="loading-process"> <div class="spinner-border loader-icon" role="status"> <span class="visually-hidden">Loading...</span> </div> <p class="w-100 text-center loader-text" data-text-waiting="Vui lòng đợi...">Vui lòng đợi...</p> </div> <link rel="stylesheet" href="/css/auth.css?id=812b7db488950121aa6e97409be61521"> <div class="container-fluid p-0 mb-5"> <header> <nav class="navbar navbar-expand-lg"> <a class="logo navbar-brand mx-auto" href="https://tuoitre.vn/" title=""><img src="https://sso.tuoitre.vn/images/logo.svg" title=""/></a> </nav> <hr class="hr m-0"/> </header> <div class="container" id="box-register"> <div class="row justify-content-center mt-5"> <div class="col-lg-12 col-md-12 col-sm-12"> <div class="row justify-content-md-center"> <div class="col-md-5 col-lg-5 col-sm-12 shadow h-100 p-6 content-box1"> <ul class="nav nav-tabs row my-nav-row" id="myTab" role="tablist"> <li class="nav-item col my-nav-item" role="presentation"> <button class="nav-link active my-title" id="home-tab" data-bs-toggle="tab" data-bs-target="#home" type="button" role="tab" aria-controls="home" aria-selected="true">đăng nhập </button> </li> <li class="nav-item col my-nav-item" role="presentation"> <button class="nav-link my-title" id="profile-tab" data-bs-toggle="tab" data-bs-target="#profile" type="button" role="tab" aria-controls="profile" aria-selected="false">tạo tài khoản </button> </li> </ul> <div class="tab-content" id="myTabContent"> <div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab"> <form class="frm-general frm-login needs-validation" id="form-login" action="https://sso.tuoitre.vn/login" data-back-url="https://sso.tuoitre.vn" method="post"> <label class="w-100 pt-5"> <input type="text" class="form-control mb-2" placeholder="Nhập email hoặc số điện thoại" name="username" value=""/> </label> <label class="w-100 pt-3"> <input id="password-field-register" type="password" class="form-control mb-2" placeholder="Nhập mật khẩu" name="password" value="" autocomplete="password"/> <span class="fa fa-fw fa-eye field-icon toggle-password"></span> </label> <p class="text-danger my-3 txt-error-login d-none">Đã xảy ra lỗi</p> <p class="text-danger pt-2 text-center"> <a href="https://sso.tuoitre.vn/forgot-password-otp" class="text-link1">Bạn chưa có hoặc quên mật khẩu? Cài đặt lại mật khẩu qua email hoặc SMS.</a> </p> <div class="d-grid gap-2 pt-0"> <button id="button-login" type="submit" class="btn btn-style my-3 fw-bolder">Đăng nhập </button> </div> <div class="mt-2 text-center"> <a class="text-link2">Hoặc đăng nhập với tài khoản mạng xã hội</a> </div> <div class="row pt-3"> <div class="col text-end"> <span role="button" class="btn-social-login" data-action="https://sso.tuoitre.vn/social-login/facebook" data-back-url="https://sso.tuoitre.vn" > <img src="https://sso.tuoitre.vn/images/facebook.png" style="max-width: 50px;max-height: 50px;" title="" alt=""/> </span> </div> <div class="col text-start"> <span role="button" class="btn-social-login" data-action="https://sso.tuoitre.vn/social-login/google" data-back-url="https://sso.tuoitre.vn" > <img src="https://sso.tuoitre.vn/images/Ellipse_2.png" style="max-width: 50px;max-height: 50px;" title="" alt=""/> </span> </div> </div> </form> </div> <div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab"> <form class="frm-general frm-login needs-validation" id="form-register" action="https://sso.tuoitre.vn/register-v2" method="post" data-resend="0" data-back-url="https://sso.tuoitre.vn/register-success"> <div class="mt-2 text-center pt-3"> <p class="text-link2">Đăng ký tài khoản báo <span>Tuổi Trẻ</span> để sử dụng đầy đủ tính năng của thành viên, nhận tin tức mới nhất trên các lĩnh vực và có cơ hội tham gia sớm các sự kiện báo <span>Tuổi Trẻ</span> tổ chức </p> </div> <input type="hidden" name="hiddenBackUrl" value="https://sso.tuoitre.vn"> <label class="w-100 pt-2"> <input type="text" class="form-control mb-2" placeholder="Nhập email hoặc số điện thoại" name="username" id="input-username-register" value=""/> <p class="text-danger txt-error-login mb-0"></p> </label> <label class="w-100 pt-3"> <input id="password-field-login" type="password" class="form-control mb-2" placeholder="Nhập mật khẩu" name="password" autocomplete="password"> <span class="fa fa-fw fa-eye field-icon toggle-password"></span> <p class="text-danger txt-error-password mb-0"></p> </label> <style> .custom-body { font-family: Arial, sans-serif; text-align: center; } #captcha-container-custom { position: relative; height: 100px; margin: 0 auto; border: 1px solid #ccc; overflow: hidden; border-radius: 10px; background-color: #f9f9f9; } .custom-icon { width: 25px; height: 25px; display: flex; align-items: center; justify-content: center; position: absolute; font-size: 20px; cursor: pointer; transition: border 0.3s; border: 2px solid transparent; } .custom-selected { border: 2px solid green; } .custom-message, .custom-request { margin-top: 10px; font-size: 14px; } #custom-reset-button { margin-top: 10px; padding: 5px 10px; font-size: 12px; cursor: pointer; } .captcha-header { display: flex; /* Sử dụng flexbox để căn chỉnh theo hàng */ align-items: center; /* Căn giữa theo chiều dọc */ } .captcha-header h5 { margin: 0; /* Xóa margin để tránh khoảng cách không cần thiết */ margin-right: 10px; /* Khoảng cách giữa tiêu đề và văn bản */ } .custom-request { margin: 0; /* Xóa margin để tránh khoảng cách không cần thiết */ } #captcha-refresh-button { margin-left: 10px; /* Add some space to the left of the button */ background-color: transparent; /* Make the background fully transparent */ border: none; /* Remove any border */ cursor: pointer; /* Change cursor to pointer to indicate it's clickable */ padding: 0; /* Remove extra padding */ transition: transform 0.3s ease; /* Smooth transition for hover and active effects */ display: flex; align-items: center; justify-content: center; } #captcha-refresh-button svg { width: 24px; /* Set the size of the icon */ height: 24px; fill: none; /* No fill color for the SVG */ stroke: #000; /* Change this color to whatever you want for the arrow */ stroke-width: 2; /* Stroke width of the arrow */ transition: transform 0.3s ease, stroke 0.3s ease; /* Smooth transition for hover effect */ } #captcha-refresh-button:hover svg { transform: scale(1.15); /* Scale the arrow icon slightly when hovered */ stroke: #007bff; /* Change the color on hover, feel free to customize this color */ } #captcha-refresh-button:active svg { transform: scale(1.05); /* Slightly scale down when clicked */ stroke: #0056b3; /* Darker color for active state */ } </style> <div class="captcha-header"> <p class="custom-request" id="custom-request">Đang tạo yêu cầu...</p> <button id="captcha-refresh-button" type="button"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-refresh-cw"> <polyline points="23 4 23 10 17 10"></polyline> <polyline points="1 20 1 14 7 14"></polyline> <path d="M3.51 9a9 9 0 0114.03-3.4L23 10M1 14l5.49 5.4A9 9 0 0021 15"></path> </svg> </button> </div> <div id="captcha-container-custom"> <!-- Biểu tượng sẽ được thêm vào đây qua JavaScript --> </div> <div class="custom-message" id="custom-message"></div> <input type="hidden" name="selected_captcha" id="selectedCaptcha"> <input type="hidden" name="captcha_value" id="captcha_value"> <script src="https://cdnjs.cloudflare.com/ajax/libs/jsencrypt/3.0.0/jsencrypt.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jsrsasign/10.5.25/jsrsasign-all-min.js"></script> <script> const icons = [ '🍎', '🍏', '🍌', '🍉', '🍇', '🍓', '🍈', '🍍', '🍒', '🥥', '🥝', '🍅', '🍊', '🍋', '🥭', '🍑', '🍠', '🥕', // Thêm biểu tượng con vật '🐶', '🐱', '🐭', '🐹', '🐰', '🦊', '🐻', '🐼', '🐨', '🐯', '🦁', '🐮', '🐷', '🐸', '🐵', '🐔', '🐧', '🐦', '🐤', '🐣', '🦆', '🦉', '🦇', '🐺', '🐗', '🐴', '🦄', '🐝', '🐛', '🦋', '🐌', '🐞', '🐜', '🦂', '🐢', '🐍', '🦎', '🦖', '🦕', '🐙', '🦑', '🦐', '🦞', '🦀', '🐡', '🐠', '🐟', '🐬', '🐳', '🐋', '🦈', '🐊', '🐅', '🐆', '🦓', '🦍', '🦧', '🐘', '🦏', '🦛', '🐫', '🦒', '🦘', '🦥', '🦨', '🦡', '🐇', '🦃', '🐓', '🦢', '🦩', '🕊️', '🐕', '🐩', '🐈' ]; const customContainer = document.getElementById('captcha-container-custom'); let targetCustomIcon = ''; let createdCustomIcons = []; function isCustomPositionOccupied(x, y, createdCustomIcons, iconSize, minDistance) { for (const icon of createdCustomIcons) { const existingX = parseFloat(icon.style.left); const existingY = parseFloat(icon.style.top); // Tính khoảng cách giữa hai biểu tượng const distance = Math.sqrt((x - existingX) ** 2 + (y - existingY) ** 2); // Nếu khoảng cách nhỏ hơn kích thước + khoảng cách tối thiểu, trả về true if (distance < iconSize + minDistance) { return true; } } return false; } function createCustomIcons() { createdCustomIcons = []; customContainer.innerHTML = ''; const availableCustomIcons = [...icons]; const iconSize = 30; // Kích thước biểu tượng const minDistance = 5; // Khoảng cách tối thiểu giữa các biểu tượng const maxAttempts = 200; // Giới hạn số lần thử tìm vị trí requestAnimationFrame(() => { let containerWidth = customContainer.clientWidth || 300; let containerHeight = customContainer.clientHeight || 100; while (createdCustomIcons.length < 40 && availableCustomIcons.length > 0) { const iconElement = document.createElement('div'); iconElement.classList.add('custom-icon'); const randomIndex = Math.floor(Math.random() * availableCustomIcons.length); const randomIcon = availableCustomIcons.splice(randomIndex, 1)[0]; iconElement.innerHTML = randomIcon; let x, y; let positionFound = false; let attempts = 0; // Sử dụng set để lưu trữ các vị trí đã thử const triedPositions = new Set(); while (!positionFound && attempts < maxAttempts) { x = Math.random() * (containerWidth - iconSize); y = Math.random() * (containerHeight - iconSize); // Kiểm tra nếu vị trí đã thử const positionKey = `${Math.floor(x)},${Math.floor(y)}`; if (triedPositions.has(positionKey)) { attempts++; continue; } triedPositions.add(positionKey); // Kiểm tra chồng lấn với các biểu tượng đã được đặt if (!isCustomPositionOccupied(x, y, createdCustomIcons, iconSize, minDistance)) { positionFound = true; } attempts++; } // Nếu tìm được vị trí, thêm biểu tượng vào container if (positionFound) { iconElement.style.left = `${x}px`; iconElement.style.top = `${y}px`; iconElement.style.width = `${iconSize}px`; iconElement.style.height = `${iconSize}px`; iconElement.setAttribute('data-icon', randomIcon); iconElement.style.position = 'absolute'; customContainer.appendChild(iconElement); createdCustomIcons.push(iconElement); } } createCustomRequest(); }); } function createCustomRequest() { if (createdCustomIcons.length > 0) { const randomIconIndex = Math.floor(Math.random() * createdCustomIcons.length); const randomIconElement = createdCustomIcons[randomIconIndex]; targetCustomIcon = randomIconElement.getAttribute('data-icon'); // Chỉ lấy từ createdCustomIcons } document.getElementById('custom-request').innerHTML = `Chọn biểu tượng <span style="font-size: 20px;">${targetCustomIcon}</span> dưới đây để xác thực`; document.getElementById('captcha_value').value = encryptData(targetCustomIcon); // Lưu CAPTCHA kq } document.getElementById('captcha-refresh-button').addEventListener('click', function (e) { e.preventDefault(); resetCustomCaptcha(); document.getElementById('custom-message').textContent='' }); customContainer.addEventListener('click', function (e) { const clickedIcon = e.target.closest('.custom-icon'); if (!clickedIcon) return; const selectedIcon = clickedIcon.getAttribute('data-icon'); if (selectedIcon === targetCustomIcon) { clickedIcon.classList.add('custom-selected'); document.getElementById('custom-message').textContent = '✅ Xác thực hoàn thành!'; // CAPTCHA được xác thực isCaptchaVerified = true; var errorElement = document.querySelector('.txt-error-register'); if (errorElement) { errorElement.textContent = ''; // Ẩn phần tử } var errorTxtEmail = document.getElementById('txt-error-email'); if (errorTxtEmail) { errorTxtEmail.textContent = ''; // Ẩn phần tử } document.getElementById('selectedCaptcha').value = encryptData(selectedIcon) ; // Lưu CAPTCHA đã chọn } else { document.getElementById('custom-message').textContent = '❌ Xác thực sai! Thử lại.'; var errorElement = document.querySelector('.txt-error-register'); if (errorElement) { errorElement.textContent = ''; // Ẩn phần tử } var errorTxtEmail = document.getElementById('txt-error-email'); if (errorTxtEmail) { errorTxtEmail.textContent = ''; // Ẩn phần tử } resetCustomCaptcha(); } }); function resetCustomCaptcha() { createCustomIcons(); } function encryptData(data) { // Check if there's data to encrypt if (!data) { return null; } const payload = { data: data, timestamp: Date.now() + 30000 }; const privateKey = `-----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEA2mj5dnqn7Uj0runnHj9C0OX24Hcmf5BOkfqOH0JqB/R5PKXN dwO+zE6Bva/5LZjMkaS8aJJ2T/oRu26M0yAIuKeur8yWtSfm7WS+n5hHS7NHbIsE g4jCAxdLrsjEHkT6aDc3AyDudcwmWgd0tnAQ8EpVfj7Gz9pAwBv0sGnTjaWWNqLM DwIIAhlXgvmd8kdN50lFHJa0f2PmgvYcQMI5SUCNUpxqnzfl7LvREKs8TEsqMCXj mPg+Yg5X/vWAYhnpETdF5m/27iR1tDNfgJTG6WV3kMKjoKcfZF/IamFAgr9nIJNL 5ifbxWy4bhCnMIXBhEjAh0HO22i0s7wtfQRYNQIDAQABAoIBAAudO27GdPmUQJaw j363RHlRUUB8dYqhBNyUY0xcPsEviebktjlW9KVuo02P9wMqte4kwXQaHbqBBMJf zZNIh84x9IMasQTvG0OScOSRt3DaFrk550KLWi3J5ldkC7HEX0B9dypubN/MvFlb PiSZbv0oJsWw1uekpn7QvcFHz10f0OU5dlVT8xkcosNnQLQReZJsH0En9l94pqk/ v1pQj4JoXBdpp7N8n+6CoxSt4qARwzciBLDMEF4FxN8f/nBnpzcHz5dK2PDUsdEj PDXnkfPitYcT8DaxAUPxTMEV6HIj7MpyWcrJSu7bC8NI+MVvNht9VwqDuXkh0VtZ twEq+cECgYEA5Xxe4iCj2+NENYPKbkpq2KVfHJC5W958WOgDCOQtuOqo8WbMt6hL DGvweeY7k2csTh/4Oq6JnkQG7J72Tk4NgYEuqRg2Bb/1KGrA0aca+Zlz+BovqjcE sBbe+rIZYF4uvTSIN93y/mu493nGU8dyNGohITvLy8QnL2BHCYz4pjECgYEA86UC fthiG5aDwDjGIkNI1aQ5OPr9e1eXjEpWIDZQo7R5Ts6q0KGLHsOGimp+ZwG9lKuG MHVunQaWAjD+a2tiArp9gvDdvFCEK+BAk8oQ12p8hd6hIVPNMLh9TMX3/O9H8hqI Fe6QREDyzvXaOauhW6/m8MUfxg7cQp00LX7sHUUCgYAxi2Fcxpk5zt4aA6L/nrdk oIdhPmmWSPllpGmLUOACLT9eJsiJ2h6hxuf7GVbBYyPwlfxchvQVJDCugz8/9p/5 1q8BOMXpBeFi4XFRkhdDzfp4lQa3Y/tyHO31B+BsqsjCdoX2McfVX+JmI3dK/SNN 55/Rcfx0uJuRIeMUT8ga8QKBgQDFRTqDB6JP4gtk7NMH1OC5ElG+oAHzBxXOYjXf uPqLwclilJTbfaDN1NQvaFBWCKO+Jy7sN3jLLRTyS0cEJJrjyKltBqcSHUMW32iK ANaoBDE0lvBxso91vjq9maDTq83d6bt7voASs1+lUIxTm3J3cTIUihbS3x9Z1Dz2 BUkZ3QKBgF3wfLDSi7a/MAQ5KFMM7E5Or8TRBVyd40N7r+FqzAj6eNa+PaI5OWig EFBAbYN2ufcN65tv9I2n2NtrYYDI9uBXcgYV96UUss9S3awtSgQvdSHjzqyRJzHl lfTouzLqcwZ7Iph5hKmUtPRgsGgQZmR4Ym3d16DpccmujF30ruCY -----END RSA PRIVATE KEY-----`; const header = JSON.stringify({ alg: "RS256", typ: "JWT" }); const payloadStr = JSON.stringify(payload); const encryptedData = KJUR.jws.JWS.sign("RS256", header, payloadStr, privateKey); // Handle encryption failure if (!encryptedData) { return null; } return encryptedData; // Return the encrypted data } window.onload = function() { createCustomIcons(); }; ///auto reset captcha let captchaTimer; // Biến để lưu timer setInterval(function() { resetCustomCaptcha(); document.getElementById('custom-message').textContent='' }, 60000); // 1 phút = 60000 milliseconds </script> <p class="text-danger txt-error-register d-none"></p> <div class="d-grid gap-2"> <button type="submit" class="btn btn-style my-3 fw-bolder" id="submit-register-form">Đăng ký </button> </div> <div class="mt-2 text-center"> <a class="text-link2">Hoặc đăng ký với tài khoản mạng xã hội</a> </div> <div class="row pt-3"> <div class="col text-end"> <span role="button" class="btn-social-login" data-action="https://sso.tuoitre.vn/social-login/facebook" data-back-url="https://sso.tuoitre.vn" > <img src="https://sso.tuoitre.vn/images/facebook.png" style="max-width: 50px;max-height: 50px;" title="" alt=""/> </span> </div> <div class="col text-start"> <span role="button" class="btn-social-login" data-action="https://sso.tuoitre.vn/social-login/google" data-back-url="https://sso.tuoitre.vn" > <img src="https://sso.tuoitre.vn/images/Ellipse_2.png" style="max-width: 50px;max-height: 50px;" title="" alt=""/> </span> </div> </div> <div class="mt-2 text-center"> <p class="text-link2 text-link2-underline">Khi nhấn đăng ký bạn đã đồng ý các quy định của báo <span>Tuổi Trẻ</span></p> </div> </form> </div> </div> </div> </div> </div> </div> </div> <div class="container d-none" id="box-verify-otp"> <div class="row justify-content-center mt-5"> <div class="col-lg-12 col-md-12 col-sm-12"> <div class="row justify-content-md-center"> <div class="col-md-5 col-lg-5 col-sm-12 shadow h-100 p-6 content-box1"> <div class="mt-2 text-start"> <a class="text-link2 my-font-c1" id="btn-back-to-phone" href="javascript:"> <img src="https://sso.tuoitre.vn/images/arrow-left.png"> Quay về </a> </div> <div class="mt-2 text-center"> <h3 class="my-title">NHẬP MÃ XÁC MINH</h3> </div> <div class="mt-4 text-center"> <p class="text-link2"> Nhập mã OTP gồm 6 số vừa được gửi đến <span id="text-phone"></span> </p> </div> <form class="frm-general frm-login needs-validation" id="form-verify-otp" action="https://sso.tuoitre.vn/verify-phone-otp" method="post" data-back-url="https://sso.tuoitre.vn"> <div class="outer-code"> <input name="otp" id="input-otp" class="form-verify" type="tel" autocomplete="one-time-code" maxlength="6"> <div class="code-line"> <span autofocus></span> <span></span> <span></span> <span></span> <span></span> <span></span> </div> </div> <div class="d-grid gap-2 pt-3"> <button type="submit" class="btn btn-style my-3 fw-bolder">Xác nhận</button> </div> <label class="w-100 pt-4"> <p class="text-danger txt-error-verify-otp text-center mb-0 d-none" id="txt-error-verify-otp" style="font-size:13px">Mã xác minh không đúng, vui lòng kiểm tra lại.</p> </label> <div class="mt-3 text-center"> <p class="text-link2 time"> Gửi lại mã sau <span id="countdown">05:00</span> phút </p> </div> <div class="mt-2 text-center box-resend-otp"> <p>Không nhận được mã OTP?</p> <style> .custom-body { font-family: Arial, sans-serif; text-align: center; } #captcha-container-custom { position: relative; height: 100px; margin: 0 auto; border: 1px solid #ccc; overflow: hidden; border-radius: 10px; background-color: #f9f9f9; } .custom-icon { width: 25px; height: 25px; display: flex; align-items: center; justify-content: center; position: absolute; font-size: 20px; cursor: pointer; transition: border 0.3s; border: 2px solid transparent; } .custom-selected { border: 2px solid green; } .custom-message, .custom-request { margin-top: 10px; font-size: 14px; } #custom-reset-button { margin-top: 10px; padding: 5px 10px; font-size: 12px; cursor: pointer; } .captcha-header { display: flex; /* Sử dụng flexbox để căn chỉnh theo hàng */ align-items: center; /* Căn giữa theo chiều dọc */ } .captcha-header h5 { margin: 0; /* Xóa margin để tránh khoảng cách không cần thiết */ margin-right: 10px; /* Khoảng cách giữa tiêu đề và văn bản */ } .custom-request { margin: 0; /* Xóa margin để tránh khoảng cách không cần thiết */ } #captcha-refresh-button { margin-left: 10px; /* Add some space to the left of the button */ background-color: transparent; /* Make the background fully transparent */ border: none; /* Remove any border */ cursor: pointer; /* Change cursor to pointer to indicate it's clickable */ padding: 0; /* Remove extra padding */ transition: transform 0.3s ease; /* Smooth transition for hover and active effects */ display: flex; align-items: center; justify-content: center; } #captcha-refresh-button svg { width: 24px; /* Set the size of the icon */ height: 24px; fill: none; /* No fill color for the SVG */ stroke: #000; /* Change this color to whatever you want for the arrow */ stroke-width: 2; /* Stroke width of the arrow */ transition: transform 0.3s ease, stroke 0.3s ease; /* Smooth transition for hover effect */ } #captcha-refresh-button:hover svg { transform: scale(1.15); /* Scale the arrow icon slightly when hovered */ stroke: #007bff; /* Change the color on hover, feel free to customize this color */ } #captcha-refresh-button:active svg { transform: scale(1.05); /* Slightly scale down when clicked */ stroke: #0056b3; /* Darker color for active state */ } </style> <div class="captcha-header"> <p class="custom-request" id="custom-request">Đang tạo yêu cầu...</p> <button id="captcha-refresh-button" type="button"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-refresh-cw"> <polyline points="23 4 23 10 17 10"></polyline> <polyline points="1 20 1 14 7 14"></polyline> <path d="M3.51 9a9 9 0 0114.03-3.4L23 10M1 14l5.49 5.4A9 9 0 0021 15"></path> </svg> </button> </div> <div id="captcha-container-custom"> <!-- Biểu tượng sẽ được thêm vào đây qua JavaScript --> </div> <div class="custom-message" id="custom-message"></div> <input type="hidden" name="selected_captcha" id="selectedCaptcha"> <input type="hidden" name="captcha_value" id="captcha_value"> <script src="https://cdnjs.cloudflare.com/ajax/libs/jsencrypt/3.0.0/jsencrypt.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jsrsasign/10.5.25/jsrsasign-all-min.js"></script> <script> const icons = [ '🍎', '🍏', '🍌', '🍉', '🍇', '🍓', '🍈', '🍍', '🍒', '🥥', '🥝', '🍅', '🍊', '🍋', '🥭', '🍑', '🍠', '🥕', // Thêm biểu tượng con vật '🐶', '🐱', '🐭', '🐹', '🐰', '🦊', '🐻', '🐼', '🐨', '🐯', '🦁', '🐮', '🐷', '🐸', '🐵', '🐔', '🐧', '🐦', '🐤', '🐣', '🦆', '🦉', '🦇', '🐺', '🐗', '🐴', '🦄', '🐝', '🐛', '🦋', '🐌', '🐞', '🐜', '🦂', '🐢', '🐍', '🦎', '🦖', '🦕', '🐙', '🦑', '🦐', '🦞', '🦀', '🐡', '🐠', '🐟', '🐬', '🐳', '🐋', '🦈', '🐊', '🐅', '🐆', '🦓', '🦍', '🦧', '🐘', '🦏', '🦛', '🐫', '🦒', '🦘', '🦥', '🦨', '🦡', '🐇', '🦃', '🐓', '🦢', '🦩', '🕊️', '🐕', '🐩', '🐈' ]; const customContainer = document.getElementById('captcha-container-custom'); let targetCustomIcon = ''; let createdCustomIcons = []; function isCustomPositionOccupied(x, y, createdCustomIcons, iconSize, minDistance) { for (const icon of createdCustomIcons) { const existingX = parseFloat(icon.style.left); const existingY = parseFloat(icon.style.top); // Tính khoảng cách giữa hai biểu tượng const distance = Math.sqrt((x - existingX) ** 2 + (y - existingY) ** 2); // Nếu khoảng cách nhỏ hơn kích thước + khoảng cách tối thiểu, trả về true if (distance < iconSize + minDistance) { return true; } } return false; } function createCustomIcons() { createdCustomIcons = []; customContainer.innerHTML = ''; const availableCustomIcons = [...icons]; const iconSize = 30; // Kích thước biểu tượng const minDistance = 5; // Khoảng cách tối thiểu giữa các biểu tượng const maxAttempts = 200; // Giới hạn số lần thử tìm vị trí requestAnimationFrame(() => { let containerWidth = customContainer.clientWidth || 300; let containerHeight = customContainer.clientHeight || 100; while (createdCustomIcons.length < 40 && availableCustomIcons.length > 0) { const iconElement = document.createElement('div'); iconElement.classList.add('custom-icon'); const randomIndex = Math.floor(Math.random() * availableCustomIcons.length); const randomIcon = availableCustomIcons.splice(randomIndex, 1)[0]; iconElement.innerHTML = randomIcon; let x, y; let positionFound = false; let attempts = 0; // Sử dụng set để lưu trữ các vị trí đã thử const triedPositions = new Set(); while (!positionFound && attempts < maxAttempts) { x = Math.random() * (containerWidth - iconSize); y = Math.random() * (containerHeight - iconSize); // Kiểm tra nếu vị trí đã thử const positionKey = `${Math.floor(x)},${Math.floor(y)}`; if (triedPositions.has(positionKey)) { attempts++; continue; } triedPositions.add(positionKey); // Kiểm tra chồng lấn với các biểu tượng đã được đặt if (!isCustomPositionOccupied(x, y, createdCustomIcons, iconSize, minDistance)) { positionFound = true; } attempts++; } // Nếu tìm được vị trí, thêm biểu tượng vào container if (positionFound) { iconElement.style.left = `${x}px`; iconElement.style.top = `${y}px`; iconElement.style.width = `${iconSize}px`; iconElement.style.height = `${iconSize}px`; iconElement.setAttribute('data-icon', randomIcon); iconElement.style.position = 'absolute'; customContainer.appendChild(iconElement); createdCustomIcons.push(iconElement); } } createCustomRequest(); }); } function createCustomRequest() { if (createdCustomIcons.length > 0) { const randomIconIndex = Math.floor(Math.random() * createdCustomIcons.length); const randomIconElement = createdCustomIcons[randomIconIndex]; targetCustomIcon = randomIconElement.getAttribute('data-icon'); // Chỉ lấy từ createdCustomIcons } document.getElementById('custom-request').innerHTML = `Chọn biểu tượng <span style="font-size: 20px;">${targetCustomIcon}</span> dưới đây để xác thực`; document.getElementById('captcha_value').value = encryptData(targetCustomIcon); // Lưu CAPTCHA kq } document.getElementById('captcha-refresh-button').addEventListener('click', function (e) { e.preventDefault(); resetCustomCaptcha(); document.getElementById('custom-message').textContent='' }); customContainer.addEventListener('click', function (e) { const clickedIcon = e.target.closest('.custom-icon'); if (!clickedIcon) return; const selectedIcon = clickedIcon.getAttribute('data-icon'); if (selectedIcon === targetCustomIcon) { clickedIcon.classList.add('custom-selected'); document.getElementById('custom-message').textContent = '✅ Xác thực hoàn thành!'; // CAPTCHA được xác thực isCaptchaVerified = true; var errorElement = document.querySelector('.txt-error-register'); if (errorElement) { errorElement.textContent = ''; // Ẩn phần tử } var errorTxtEmail = document.getElementById('txt-error-email'); if (errorTxtEmail) { errorTxtEmail.textContent = ''; // Ẩn phần tử } document.getElementById('selectedCaptcha').value = encryptData(selectedIcon) ; // Lưu CAPTCHA đã chọn } else { document.getElementById('custom-message').textContent = '❌ Xác thực sai! Thử lại.'; var errorElement = document.querySelector('.txt-error-register'); if (errorElement) { errorElement.textContent = ''; // Ẩn phần tử } var errorTxtEmail = document.getElementById('txt-error-email'); if (errorTxtEmail) { errorTxtEmail.textContent = ''; // Ẩn phần tử } resetCustomCaptcha(); } }); function resetCustomCaptcha() { createCustomIcons(); } function encryptData(data) { // Check if there's data to encrypt if (!data) { return null; } const payload = { data: data, timestamp: Date.now() + 30000 }; const privateKey = `-----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEA2mj5dnqn7Uj0runnHj9C0OX24Hcmf5BOkfqOH0JqB/R5PKXN dwO+zE6Bva/5LZjMkaS8aJJ2T/oRu26M0yAIuKeur8yWtSfm7WS+n5hHS7NHbIsE g4jCAxdLrsjEHkT6aDc3AyDudcwmWgd0tnAQ8EpVfj7Gz9pAwBv0sGnTjaWWNqLM DwIIAhlXgvmd8kdN50lFHJa0f2PmgvYcQMI5SUCNUpxqnzfl7LvREKs8TEsqMCXj mPg+Yg5X/vWAYhnpETdF5m/27iR1tDNfgJTG6WV3kMKjoKcfZF/IamFAgr9nIJNL 5ifbxWy4bhCnMIXBhEjAh0HO22i0s7wtfQRYNQIDAQABAoIBAAudO27GdPmUQJaw j363RHlRUUB8dYqhBNyUY0xcPsEviebktjlW9KVuo02P9wMqte4kwXQaHbqBBMJf zZNIh84x9IMasQTvG0OScOSRt3DaFrk550KLWi3J5ldkC7HEX0B9dypubN/MvFlb PiSZbv0oJsWw1uekpn7QvcFHz10f0OU5dlVT8xkcosNnQLQReZJsH0En9l94pqk/ v1pQj4JoXBdpp7N8n+6CoxSt4qARwzciBLDMEF4FxN8f/nBnpzcHz5dK2PDUsdEj PDXnkfPitYcT8DaxAUPxTMEV6HIj7MpyWcrJSu7bC8NI+MVvNht9VwqDuXkh0VtZ twEq+cECgYEA5Xxe4iCj2+NENYPKbkpq2KVfHJC5W958WOgDCOQtuOqo8WbMt6hL DGvweeY7k2csTh/4Oq6JnkQG7J72Tk4NgYEuqRg2Bb/1KGrA0aca+Zlz+BovqjcE sBbe+rIZYF4uvTSIN93y/mu493nGU8dyNGohITvLy8QnL2BHCYz4pjECgYEA86UC fthiG5aDwDjGIkNI1aQ5OPr9e1eXjEpWIDZQo7R5Ts6q0KGLHsOGimp+ZwG9lKuG MHVunQaWAjD+a2tiArp9gvDdvFCEK+BAk8oQ12p8hd6hIVPNMLh9TMX3/O9H8hqI Fe6QREDyzvXaOauhW6/m8MUfxg7cQp00LX7sHUUCgYAxi2Fcxpk5zt4aA6L/nrdk oIdhPmmWSPllpGmLUOACLT9eJsiJ2h6hxuf7GVbBYyPwlfxchvQVJDCugz8/9p/5 1q8BOMXpBeFi4XFRkhdDzfp4lQa3Y/tyHO31B+BsqsjCdoX2McfVX+JmI3dK/SNN 55/Rcfx0uJuRIeMUT8ga8QKBgQDFRTqDB6JP4gtk7NMH1OC5ElG+oAHzBxXOYjXf uPqLwclilJTbfaDN1NQvaFBWCKO+Jy7sN3jLLRTyS0cEJJrjyKltBqcSHUMW32iK ANaoBDE0lvBxso91vjq9maDTq83d6bt7voASs1+lUIxTm3J3cTIUihbS3x9Z1Dz2 BUkZ3QKBgF3wfLDSi7a/MAQ5KFMM7E5Or8TRBVyd40N7r+FqzAj6eNa+PaI5OWig EFBAbYN2ufcN65tv9I2n2NtrYYDI9uBXcgYV96UUss9S3awtSgQvdSHjzqyRJzHl lfTouzLqcwZ7Iph5hKmUtPRgsGgQZmR4Ym3d16DpccmujF30ruCY -----END RSA PRIVATE KEY-----`; const header = JSON.stringify({ alg: "RS256", typ: "JWT" }); const payloadStr = JSON.stringify(payload); const encryptedData = KJUR.jws.JWS.sign("RS256", header, payloadStr, privateKey); // Handle encryption failure if (!encryptedData) { return null; } return encryptedData; // Return the encrypted data } window.onload = function() { createCustomIcons(); }; ///auto reset captcha let captchaTimer; // Biến để lưu timer setInterval(function() { resetCustomCaptcha(); document.getElementById('custom-message').textContent='' }, 60000); // 1 phút = 60000 milliseconds </script> <p class="mb-3 text-danger txt-error-resend-otp d-none">Không gửi được mã OTP</p> <a class="text-link1" href="javascript:" id="btn-resend-otp" title="">Gửi lại mã</a> </div> </form> </div> </div> </div> </div> </div> <div class="container d-none" id="box-login-success"> <div class="row justify-content-center mt-5"> <div class="col-lg-12 col-md-12 col-sm-12"> <div class="row justify-content-md-center"> <div class="col-md-5 col-lg-5 col-sm-12 shadow h-100 p-6 content-box1"> <div class="mt-2 text-center"> <h3 class="my-title">ĐĂNG NHẬP THÀNH CÔNG</h3> </div> <div class="mt-4 text-center"> <p class="text-link2"> Tự động chuyển trang trong </p> </div> <div class="mt-4 text-center my-fontstyle1 d-flex justify-content-center"> <h1 id="countdown-seconds-redirect">5</h1><span>giây</span> </div> <div class="d-grid gap-2 pt-3"> <button type="button" class="btn btn-style my-3 fw-bolder btn-redirect" data-url="https://sso.tuoitre.vn"> CHUYỂN TRANG NHANH </button> </div> </div> </div> </div> </div> </div> <div class="container d-none" id="box-register-success"> <div class="row justify-content-center mt-5"> <div class="col-lg-12 col-md-12 col-sm-12"> <div class="row justify-content-md-center"> <div class="col-md-5 col-lg-5 col-sm-12 shadow h-100 p-6 content-box1"> <div class="mt-2 text-center"> <h3 class="my-title">ĐĂNG KÝ TÀI KHOẢN THÀNH CÔNG</h3> </div> <div class="mt-4 text-center"> <p class="text-link2"> Cảm ơn bạn đã đăng ký tài khoản báo <span>Tuổi Trẻ!</span> </p> </div> <div class="mt-4 text-center"> <p class="text-link2"> Bạn có thể tham gia bình luận, tương tác và sử dụng các dịch vụ của báo <span>Tuổi Trẻ</span> ngay bây giờ. </p> </div> <div class="row"> <div class="col"> <div class="d-grid gap-2 pt-3"> <button type="button" class="btn btn-style my-text-btn my-3 fw-bolder btn-redirect" data-url="https://tuoitre.vn"> Tuổi trẻ online </button> </div> </div> <div class="col"> <div class="d-grid gap-2 pt-3"> <button type="button" class="btn btn-style-r my-text-btn my-3 fw-bolder btn-redirect" data-url="https://sso.tuoitre.vn"> Thông tin tài khoản </button> </div> </div> </div> </div> </div> </div> </div> </div> <div class="container d-none" id="box-verify-email"> <div class="row justify-content-center mt-5"> <div class="col-lg-12 col-md-12 col-sm-12"> <div class="row justify-content-md-center"> <div class="col-md-5 col-lg-5 col-sm-12 shadow h-100 p-6 content-box1"> <div class="mt-2 text-center"> <h3 class="my-title">KÍCH HOẠT TÀI KHOẢN EMAIL</h3> </div> <div class="mt-4 text-center"> <p class="text-link2"> Vui lòng kiểm tra email <span id="email-verify"></span> để kích hoạt tài khoản của bạn. </p> </div> <div class="mt-4 text-center"> <p class="text-link2 my-font-c1"> <em>Bạn đừng quên kiểm tra hộp thư rác !</em> </p> </div> <div class="mt-2 text-center"> <form action="https://sso.tuoitre.vn/send-verify-email" name="form-send-verify-email" id="form-send-verify-email" method="post"> <input type="email" name="email" id="txt-email-verify" value="" hidden> <p> <label for="submit-send-verify-email" class="text-link1">Bạn chưa nhận được? Gửi lại email</label> <input type="submit" class="text-link1" id="submit-send-verify-email" hidden> </p> </form> </div> <div class="mt-2 text-center"> <p class="text-center text-danger txt-error-register d-none" id="text-error-resend-verify-email"> Email xác thực đã được gửi lại, bạn vui lòng kiểm tra email. </p> </div> <div class="row"> <div class="col"></div> <div class="col-6"> <div class="d-grid gap-2 pt-3"> <button type="button" class="btn btn-style my-text-btn my-3 fw-bolder btn-redirect" data-url="https://tuoitre.vn"> Tuổi trẻ online </button> </div> </div> <div class="col"></div> </div> </div> </div> </div> </div> </div> </div> <footer class="my-footer" style="text-align: left;margin-top: 0; height: 100%;" > <div class="container mt-auto bg-white"> <div class="row"> <div class="footer col-12"> <div class="footer__top"> <div class="d-flex justify-content-center ps-0"> <div class="footer__nav"> <ul class="nav"> <li class="nav-item"> <a href="https://tuoitre.vn" title="Trang chủ" class="nav-link active ps-0">Trang chủ </a> </li> <li class="nav-item"> <a href="https://tuoitre.vn/video.htm" title="MEDIA" rel="nofollow" target="_blank" class="nav-link">Media </a> </li> <li class="nav-item"> <a href="https://tuoitre.vn/thoi-su.htm" title="THỜI SỰ" class="nav-link ">Thời sự </a> </li> <li class="nav-item"> <a href="https://tuoitre.vn/the-gioi.htm" title="THẾ GIỚI" class="nav-link ">Thế giới </a> </li> <li class="nav-item"> <a href="https://tuoitre.vn/phap-luat.htm" title="PHÁP LUẬT" class="nav-link ">Pháp luật </a> </li> <li class="nav-item"> <a href="https://tuoitre.vn/kinh-doanh.htm" title="KINH DOANH" class="nav-link ">Kinh doanh </a> </li> <li class="nav-item"> <a href="https://tuoitre.vn/cong-nghe.htm" title="CÔNG NGHỆ" class="nav-link ">Công nghệ </a> </li> <li class="nav-item"> <a href="https://tuoitre.vn/xe.htm" title="XE" class="nav-link ">Xe </a> </li> <li class="nav-item"> <a href="https://tuoitre.vn/du-lich.htm" title="DU LỊCH" class="nav-link ">Du lịch </a> </li> <li class="nav-item"> <a href="https://tuoitre.vn/nhip-song-tre.htm" title="NHỊP SỐNG TRẺ" class="nav-link ">Nhịp sống trẻ </a> </li> <li class="nav-item"> <a href="https://tuoitre.vn/van-hoa.htm" title="VĂN HÓA" class="nav-link ">Văn hóa </a> </li> <li class="nav-item"> <a href="https://tuoitre.vn/giai-tri.htm" title="GIẢI TRÍ" class="nav-link ">Giải trí </a> </li> <li class="nav-item"> <a href="https://tuoitre.vn/the-thao.htm" title="THỂ THAO" class="nav-link ">Thể thao </a> </li> <li class="nav-item"> <a href="https://tuoitre.vn/giao-duc.htm" title="GIÁO DỤC" class="nav-link ">Giáo dục </a> </li> <li class="nav-item"> <a href="https://tuoitre.vn/khoa-hoc.htm" title="KHOA HỌC" class="nav-link ">Khoa học </a> </li> <li class="nav-item" > <a href="https://tuoitre.vn/suc-khoe.htm" title="Sức khỏe" class="nav-link ">Sức khỏe </a> </li> <li class="nav-item"> <a href="https://tuoitre.vn/gia-that.htm" title="Giả thật" class="nav-link ">Giả thật </a> </li> <li class="nav-item"> <a href="https://tuoitre.vn/ban-doc.htm" title="Bạn đọc" class="nav-link ">Bạn đọc </a> </li> </ul> </div> </div> </div> <div class="container-fluid mx-auto d-flex justify-content-between my-footer1"> <div > <p class="text my-footer-f2 ms-0 mb-0 mt-0"> Tổng biên tập: Lê Thế Chữ </p> <p class="text my-footer-f2 ms-0 mb-0 mt-0"> Giấy phép hoạt động báo điện tử tiếng Việt, tiếng Anh Số 561/GP-BTTTT, cấp ngày 25-11-2022. </p> <p class="text my-footer-f2 ms-0 mb-0 mt-0"> <a href="https://tuoitre.vn/thong-tin-toa-soan.htm" class="my-footer-f1" title="Thông tin tòa soạn">Thông tin tòa soạn - </a> <a href="http://www.thanhdoan.hochiminhcity.gov.vn/thanhdoan/webtd" class="my-footer-f1" title="Thành Đoàn TP.HCM" rel="nofollow" target="_blank">Thành Đoàn TP.HCM</a> </p> </div> <div > <p class="text my-footer-f2 ps-0 ms-0 mb-0 mt-0"> Địa chỉ: 60A Hoàng Văn Thụ, P.9, Q.Phú Nhuận, Tp. Hồ Chí Minh </p> <p class="text my-footer-f2 ps-0 mb-0 mt-0 ms-0"> Hotline: 0918.033.133 - Email: tto@tuoitre.com.vn </p> <p class="text my-footer-f2 ps-0 mt-0 mb-0 ms-0"> Phòng Quảng Cáo Báo Tuổi Trẻ: 028.39974848 </p> </div> <div> <ul class="navbar-nav list"> <li class="nav-item"> <a class="nav-link my-footer-f4" rel="nofollow" target="_blank" href="https://quangcao.tuoitre.vn" title="Liên hệ Quảng cáo">Liên hệ Quảng cáo</a> </li> <li class="nav-item"> <a class="nav-link my-footer-f4" href="#" data-bs-toggle="modal" data-bs-target="#rulesModalFooter" title="Chính sách bảo mật">Chính sách bảo mật</a> </li> <li class="nav-item"> <a class="nav-link my-footer-f4" href="https://docs.google.com/forms/d/e/1FAIpQLScSRj-Bxm1t6roko_ocQlUSZCnei3a03IdoOpPQ9-lp2McaKw/viewform" target="_blank" title="Liên hệ góp ý">Liên hệ góp ý</a> </li> </ul> </div> </div> <div class="container-fluid mx-auto d-flex justify-content-between my-border pt-2"> <div class="row"> <div class="col-12"> <ul class="nav"> <li class="nav-item"> <a href="https://tuoitre.vn" target="_blank" class="nav-link"> <img src="https://sso.tuoitre.vn/images/ftt.png" /> </a> </li> <li class="nav-item"> <a href="https://tuoitre.vn/video.htm" target="_blank" class="nav-link"> <img src="https://sso.tuoitre.vn/images/ftttv.svg" /> </a> </li> <li class="nav-item"> <a href="https://podcast.tuoitre.vn" target="_blank" class="nav-link"> <img src="https://sso.tuoitre.vn/images/fttpodcast.svg" /> </a> </li> <li class="nav-item"> <a href="https://cuoi.tuoitre.vn" target="_blank" class="nav-link"> <img src="https://sso.tuoitre.vn/images/fttc.svg" /> </a> </li> <li class="nav-item"> <a href="https://cuoituan.tuoitre.vn" target="_blank" class="nav-link"> <img src="https://sso.tuoitre.vn/images/fttct.svg" /> </a> </li> <li class="nav-item"> <a href="https://tuoitrenews.vn" target="_blank" class="nav-link"> <img src="https://sso.tuoitre.vn/images/fttn.svg" /> </a> </li> <li class="nav-item"> <a href="https://quangcao.tuoitre.vn" target="_blank" class="nav-link"> <img src="https://sso.tuoitre.vn/images/fttmedia.svg" /> </a> </li> <li class="nav-item"> <a href="https://raovat.tuoitre.vn" target="_blank" class="nav-link"> <img src="https://sso.tuoitre.vn/images/fttrv.svg" /> </a> </li> <li class="nav-item"> <a href="https://muctim.tuoitre.vn/" target="_blank" class="nav-link"> <img src="https://sso.tuoitre.vn/images/fmuctim.svg" /> </a> </li> </ul> </div> </div> </div> <div class="container-fluid my-footer-width mx-auto justify-content-between mt-2"> <div class="row"> <p class="text col-10 my-footer-f5"> © Copyright 2023 TuoiTre Online, All rights reserved ® Tuổi Trẻ Online giữ bản quyền nội dung trên website này </p> <div class="col-2"> <ul class="nav float-end"> <li> <a class="ms-1" href="https://www.youtube.com/channel/UCrwJa6KRHWnJpJPZNeKKcvA" title="Quan tâm Tuổi Trẻ trên Youtube" target="_blank" rel="nofollow" class="icon"> <svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"> <rect x="0.5" y="1.16699" width="23" height="23" rx="11.5" stroke="#666666"></rect> <path fill-rule="evenodd" clip-rule="evenodd" d="M6.75984 16.9011C6.52448 16.8314 6.30973 16.7076 6.13372 16.5399C5.9577 16.3722 5.82559 16.1657 5.74851 15.9377C5.3081 14.7594 5.1776 9.83915 6.02581 8.86784C6.30811 8.55186 6.70668 8.35732 7.13501 8.32645C9.41049 8.0876 16.4408 8.11945 17.2483 8.40606C17.4754 8.47799 17.6828 8.59915 17.8552 8.76047C18.0275 8.92178 18.1602 9.11908 18.2433 9.33757C18.7245 10.5557 18.7408 14.9823 18.178 16.1527C18.0287 16.4573 17.7788 16.7041 17.4685 16.8533C16.6203 17.2673 7.88534 17.2594 6.75984 16.9011ZM10.3729 14.5922L14.4508 12.5222L10.3729 10.4363V14.5922Z" fill="#666666"></path> </svg> </a> </li> <li> <a class="ms-1" href="https://www.instagram.com/baotuoitre" title="Quan tâm Tuổi Trẻ trên Instagram" target="_blank" rel="nofollow" class="icon"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <rect x="0.5" y="0.5" width="23" height="23" rx="11.5" stroke="#565656"></rect> <path d="M17.6 11.8C17.6 13.1377 17.6 14.4754 17.6 15.813C17.6 16.8852 16.875 17.6 15.813 17.6C13.1377 17.6 10.4725 17.6 7.79718 17.6C6.725 17.6 6 16.875 6 15.813C6 13.1377 6 10.4725 6 7.79718C6 6.725 6.725 6 7.78697 6C10.4623 6 13.1275 6 15.8028 6C16.875 6 17.5898 6.725 17.5898 7.78697C17.6 9.12465 17.6 10.4623 17.6 11.8ZM14.8532 11.8102C14.843 10.1151 13.4644 8.75704 11.7694 8.76725C10.1049 8.77746 8.74683 10.1458 8.74683 11.8204C8.74683 13.5155 10.1254 14.8838 11.8204 14.8838C13.4951 14.8736 14.8634 13.4951 14.8532 11.8102ZM15.5373 8.76725C15.9049 8.76725 16.2113 8.46092 16.2113 8.0831C16.2113 7.70528 15.9049 7.40915 15.5373 7.40915C15.1697 7.40915 14.8634 7.71549 14.8634 8.09331C14.8634 8.46092 15.1697 8.76725 15.5373 8.76725Z" fill="#565656"></path> <path d="M9.42065 11.8323C9.42065 10.5253 10.4826 9.45312 11.7897 9.45312C13.1069 9.45312 14.1791 10.5253 14.1791 11.8426C14.1689 13.1394 13.1069 14.2014 11.7999 14.2014C10.4928 14.2014 9.42065 13.1394 9.42065 11.8323Z" fill="#565656"></path> </svg> </a> </li> <li> <a class="ms-1" href="https://www.facebook.com/baotuoitre" title="Quan tâm Tuổi Trẻ trên Facebook" target="_blank" rel="nofollow" class="icon"> <svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"> <rect x="0.5" y="1.16699" width="23" height="23" rx="11.5" stroke="#666666"></rect> <path d="M12.9966 12.8847H15.2299L15.5805 10.6021H12.9961V9.35462C12.9961 8.40641 13.3041 7.56559 14.1857 7.56559H15.6023V5.57366C15.3534 5.53985 14.827 5.46582 13.8323 5.46582C11.7553 5.46582 10.5375 6.5694 10.5375 9.08364V10.6021H8.40234V12.8847H10.5375V19.1584C10.9604 19.2224 11.3887 19.2658 11.8284 19.2658C12.2258 19.2658 12.6137 19.2293 12.9966 19.1772V12.8847Z" fill="#666666"></path> </svg> </a> </li> </ul> </div> </div> </div> </div> </div> </div> </footer> <section class="footer-mobile container-fluid ps-0 pe-0"> <div class="d-flex justify-content-around bd-highlight bg-white my-border1"> <div class="p-2 bd-highlight"> <a href="https://tuoitre.vn"> <img src="https://sso.tuoitre.vn/images/ftt.png" width="105px" height="30px"> </a> </div> <div class="p-2 bd-highlight"> </div> <div class="p-2 bd-highlight"> <ul class="nav text-center"> <li> <a class="ms-3" href="https://www.youtube.com/channel/UCrwJa6KRHWnJpJPZNeKKcvA" title="Quan tâm Tuổi Trẻ trên Youtube" target="_blank" rel="nofollow" class="icon"> <svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"> <rect x="0.5" y="1.16699" width="23" height="23" rx="11.5" stroke="#666666"></rect> <path fill-rule="evenodd" clip-rule="evenodd" d="M6.75984 16.9011C6.52448 16.8314 6.30973 16.7076 6.13372 16.5399C5.9577 16.3722 5.82559 16.1657 5.74851 15.9377C5.3081 14.7594 5.1776 9.83915 6.02581 8.86784C6.30811 8.55186 6.70668 8.35732 7.13501 8.32645C9.41049 8.0876 16.4408 8.11945 17.2483 8.40606C17.4754 8.47799 17.6828 8.59915 17.8552 8.76047C18.0275 8.92178 18.1602 9.11908 18.2433 9.33757C18.7245 10.5557 18.7408 14.9823 18.178 16.1527C18.0287 16.4573 17.7788 16.7041 17.4685 16.8533C16.6203 17.2673 7.88534 17.2594 6.75984 16.9011ZM10.3729 14.5922L14.4508 12.5222L10.3729 10.4363V14.5922Z" fill="#666666"></path> </svg> </a> </li> <li> <a class="ms-3" href="https://www.instagram.com/baotuoitre/" title="Quan tâm Tuổi Trẻ trên Instagram" target="_blank" rel="nofollow" class="icon"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <rect x="0.5" y="0.5" width="23" height="23" rx="11.5" stroke="#565656"></rect> <path d="M17.6 11.8C17.6 13.1377 17.6 14.4754 17.6 15.813C17.6 16.8852 16.875 17.6 15.813 17.6C13.1377 17.6 10.4725 17.6 7.79718 17.6C6.725 17.6 6 16.875 6 15.813C6 13.1377 6 10.4725 6 7.79718C6 6.725 6.725 6 7.78697 6C10.4623 6 13.1275 6 15.8028 6C16.875 6 17.5898 6.725 17.5898 7.78697C17.6 9.12465 17.6 10.4623 17.6 11.8ZM14.8532 11.8102C14.843 10.1151 13.4644 8.75704 11.7694 8.76725C10.1049 8.77746 8.74683 10.1458 8.74683 11.8204C8.74683 13.5155 10.1254 14.8838 11.8204 14.8838C13.4951 14.8736 14.8634 13.4951 14.8532 11.8102ZM15.5373 8.76725C15.9049 8.76725 16.2113 8.46092 16.2113 8.0831C16.2113 7.70528 15.9049 7.40915 15.5373 7.40915C15.1697 7.40915 14.8634 7.71549 14.8634 8.09331C14.8634 8.46092 15.1697 8.76725 15.5373 8.76725Z" fill="#565656"></path> <path d="M9.42065 11.8323C9.42065 10.5253 10.4826 9.45312 11.7897 9.45312C13.1069 9.45312 14.1791 10.5253 14.1791 11.8426C14.1689 13.1394 13.1069 14.2014 11.7999 14.2014C10.4928 14.2014 9.42065 13.1394 9.42065 11.8323Z" fill="#565656"></path> </svg> </a> </li> <li> <a class="ms-3" href="https://www.facebook.com/baotuoitre" title="Quan tâm Tuổi Trẻ trên Facebook" target="_blank" rel="nofollow" class="icon"> <svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"> <rect x="0.5" y="1.16699" width="23" height="23" rx="11.5" stroke="#666666"></rect> <path d="M12.9966 12.8847H15.2299L15.5805 10.6021H12.9961V9.35462C12.9961 8.40641 13.3041 7.56559 14.1857 7.56559H15.6023V5.57366C15.3534 5.53985 14.827 5.46582 13.8323 5.46582C11.7553 5.46582 10.5375 6.5694 10.5375 9.08364V10.6021H8.40234V12.8847H10.5375V19.1584C10.9604 19.2224 11.3887 19.2658 11.8284 19.2658C12.2258 19.2658 12.6137 19.2293 12.9966 19.1772V12.8847Z" fill="#666666"></path> </svg> </a> </li> </ul> </div> </div> <div class="bg-white"> <div> <p class="my-footer-font6">Tổng biên tập: Lê Thế Chữ</p> <p class="my-footer-font6">Giấy phép hoạt động báo điện tử tiếng Việt, tiếng Anh</p> <p class="my-footer-font6">Số 561/GP-BTTTT, cấp ngày 25-11-2022.</p> <p class="my-footer-font6"> <a href="https://tuoitre.vn/thong-tin-toa-soan.htm" class="my-footer-f1" title="Thông tin tòa soạn">Thông tin tòa soạn - </a> <a href="http://www.thanhdoan.hochiminhcity.gov.vn/thanhdoan/webtd" class="my-footer-f1" title="Thành Đoàn TP.HCM" rel="nofollow" target="_blank">Thành Đoàn TP.HCM</a> </p> <p class="my-footer-font6">Địa chỉ: 60A Hoàng Văn Thụ, P.9, Q.Phú Nhuận, Tp. Hồ Chí Minh</p> <p class="my-footer-font6">Hotline: 0918.033.133 - Email: tto@tuoitre.com.vn</p> <p class="my-footer-font6">Phòng Quảng Cáo Báo Tuổi Trẻ: 028.39974848</p> <p class="my-footer-font6"> <a href="https://tuoitre.vn/thong-tin-toa-soan.htm" class="my-footer-f1" title="Thông tin tòa soạn">Liên hệ Quảng cáo |</a> <a href="#" class="my-footer-f1" rel="nofollow" data-bs-toggle="modal" data-bs-target="#rulesModalFooter" title="Chính sách bảo mật">Chính sách bảo mật |</a> <a href="#" class="my-footer-f1" title="Góp ý" rel="nofollow" target="_blank">Góp ý</a> </p> <p class="my-footer-font7">© Copyright 2023 TuoiTre Online, All rights reserved</p> <p class="my-footer-font7">® Tuổi Trẻ Online giữ bản quyền nội dung trên website này</p> </div> </div> </section> <script> $(document).ready(function(){ if ($( window ).width() < 991) { $(".my-footer").addClass("d-none") $(".my-footer").removeClass("d-block") $(".footer-mobile").addClass("d-block") $(".footer-mobile").removeClass("d-none") }else { $(".my-footer").addClass("d-block") $(".my-footer").removeClass("d-none") $(".footer-mobile").addClass("d-none") $(".footer-mobile").removeClass("d-block") } }); $( window ).resize(function() { if ($( window ).width() < 991) { $(".my-footer").addClass("d-none") $(".my-footer").removeClass("d-block") $(".footer-mobile").addClass("d-block") $(".footer-mobile").removeClass("d-none") }else { $(".my-footer").addClass("d-block") $(".my-footer").removeClass("d-none") $(".footer-mobile").addClass("d-none") $(".footer-mobile").removeClass("d-block") } }); </script> <div class="position-fixed bottom-0 end-0 mb-5 me-2 toast align-items-center text-white bg-success border-0 notification-after-alert" role="alert" aria-live="assertive" aria-atomic="true" style="z-index: 11"> <div class="d-flex"> <div class="toast-body"> Something alert </div> <button type="button" class="btn-close btn-close-white me-2 m-auto" data-bs-dismiss="toast" aria-label="Close"></button> </div> </div> <div class="modal my-modal fade" id="popupNoti" tabindex="-1" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h5 id="titleNoti" class="align-content-center modal-title my-title ">THÔNG BÁO CẬP NHẬT</h5> <button onClick="window.location.reload();" type="button" class="btn-close" data-bs-dismiss="modal" id="btnCloseUpdate" aria-label="Close"></button> </div> <div class="modal-body"> <label class="center fw-bold pt-3 text-center " id="messNoti" style="padding: 0 30px;padding-left: 110px"> </label> <div class="gap-2 text-center"> <button onClick="window.location.reload();" type="button" id="btnConfirm" class="btn-close btn-style-r my-3 fw-bolder fa-align-center" data-bs-dismiss="modal" aria-label="Close" onload="script();"> XÁC NHẬN </button> </div> </div> </div> </div> </div> <div class="modal my-modal fade" id="popupNotiVocuher" tabindex="-1" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h5 id="titleNoti" class="text-center modal-title my-title" >THÔNG BÁO</h5> <button onClick="window.location.reload();" type="button" class="btn-close" data-bs-dismiss="modal" id="btnCloseVoucher" aria-label="Close"></button> </div> <div class="modal-body"> <label class="center fw-bold pt-3 text-center " id="messNotiVoucher" style="padding: 0 30px;padding-left: 110px;margin-left: -4px"> </label> <div class="gap-2 text-center"> <button onClick="window.location.reload();" type="button" id="btnConfirmVoucher" class="btn-close btn-style-r my-3 fw-bolder fa-align-center" data-bs-dismiss="modal" aria-label="Close" onload="script();"> XÁC NHẬN </button> </div> </div> </div> </div> </div> <div class="modal fade" id="rulesModalFooter" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true"> <div class="modal-dialog modal-lg"> <div class="modal-content"> <div class="modal-body txt-rule"> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> <h1>CHÍNH SÁCH BẢO MẬT</h1> <p>Báo Tuổi Trẻ chú trọng đến việc bảo vệ thông tin cá nhân của người dùng và cam kết tuân thủ các quy định về bảo mật dữ liệu cá nhân. Chính sách bảo mật này nhằm đảm bảo rằng thông tin cá nhân của người dùng được thu thập, lưu trữ và xử lý một cách an toàn và bảo mật.</p> <h2>1. Mục đích thu thập thông tin</h2> <p>Báo Tuổi Trẻ thu thập thông tin cá nhân của người dùng với mục đích cung cấp cho người dùng dịch vụ tốt hơn với những ưu điểm: đăng ký tài khoản, gửi những tin tức mới nhất, những tin tức được xã hội quan tâm thông qua các kênh truyền thông của báo Tuổi Trẻ như thông báo của web, thông báo của app, gửi email, hiển thị tối ưu quảng cáo nhằm mục đích tăng trải nghiệm người dùng, hoặc gửi thông tin về các chương trình sự kiện do báo Tuổi Trẻ tổ chức.</p> <h2>2. Loại thông tin được thu thập</h2> <p>Báo Tuổi Trẻ thu thập các thông tin liên quan đến người dùng, bao gồm họ tên, giới tính, ngày sinh, địa chỉ email, điện thoại, địa chỉ IP, vị trí địa lý, thông tin trình duyệt và các thông tin khác liên quan đến hành vi trực tuyến của người dùng.</p> <h2>3. Phương thức thu thập thông tin</h2> <p>Báo Tuổi Trẻ thu thập thông tin cá nhân của người dùng thông qua đăng ký tài khoản, mẫu điền thông tin, cookie, các công cụ phân tích trang web và các phương tiện truyền thông khác. Chúng tôi cam kết sử dụng các phương thức thu thập thông tin an toàn và bảo mật.</p> <h2>4. Điều kiện để thu thập thông tin</h2> <p>Báo Tuổi Trẻ chỉ thu thập thông tin cá nhân của người dùng khi được sự đồng ý của người dùng, cũng như khi thông tin được thu thập để thực hiện việc trao giải của các cuộc thi, sự kiện, trò chơi do báo Tuổi Trẻ tổ chức hoặc để tuân thủ các yêu cầu pháp lý.</p> <h2>5. Quyền riêng tư của người dùng</h2> <p>Báo Tuổi Trẻ tôn trọng quyền riêng tư của người dùng và cam kết bảo vệ thông tin cá nhân của người dùng. Người dùng có quyền truy cập, sửa đổi, xoá và chặn thông tin cá nhân của mình. Nếu người dùng có bất kỳ yêu cầu nào liên quan đến thông tin cá nhân của mình, chúng tôi sẵn sàng hỗ trợ.</p> <h2>6. Bảo mật thông tin</h2> <p>Báo Tuổi Trẻ cam kết sử dụng các biện pháp bảo mật để bảo vệ thông tin cá nhân của người dùng. Chúng tôi sử dụng các công nghệ bảo mật như mã hóa, giới hạn quyền truy cập và các quy trình bảo mật khác để đảm bảo rằng thông tin cá nhân của người dùng được bảo vệ một cách an toàn và bảo mật.</p> <h2>7. Chia sẻ thông tin</h2> <p>Báo Tuổi Trẻ chỉ chia sẻ thông tin cá nhân của người dùng với bên thứ ba khi có sự đồng ý của người dùng hoặc khi thông tin được yêu cầu để thực hiện tuân thủ các yêu cầu pháp lý. Chúng tôi chỉ chia sẻ thông tin cần thiết và cam kết bảo vệ thông tin cá nhân của người dùng.</p> <h2>8. Điều chỉnh chính sách bảo mật</h2> <p>Báo Tuổi Trẻ cam kết cập nhật chính sách bảo mật để phù hợp với các thay đổi về công nghệ, quy định pháp lý và nhu cầu của người dùng. Chúng tôi sẽ thông báo cho người dùng về các thay đổi này và cung cấp cách thức để người dùng có thể phản hồi hoặc yêu cầu bảo vệ thông tin cá nhân của mình.</p> <h2>9. Liên hệ</h2> <p>Nếu người dùng có bất kỳ câu hỏi hoặc yêu cầu liên quan đến chính sách bảo mật của báo Tuổi Trẻ, xin vui lòng liên hệ với chúng tôi thông qua địa chỉ email: <b>hotro@tuoitre.com.vn</b>.</p> <p>Báo Tuổi Trẻ xác định rằng, việc bảo vệ thông tin cá nhân của người dùng là rất quan trọng. Từ đó chúng tôi sẽ luôn cập nhật và hoàn thiện chính sách bảo mật của mình một cách tốt nhất để đảm bảo rằng người dùng có thể yên tâm truy cập và sử dụng dịch vụ của chúng tôi an toàn và bảo mật.</p> <div class="d-flex justify-content-center mt-5"> <button type="button" class="btn btn-style" data-bs-dismiss="modal">Tôi đã đọc và đồng ý </button> </div> </div> </div> </div> </div> <script src="/js/auth.js?id=bb7408fe312fec91c61ea1829d2b9b94"></script> <script src="/js/animation-v2.js?id=b07bef1a89b6b779d4c5e2f0bb70c19a"></script> <script> </script> <script src='//cdnt.netcoresmartech.com/smartechclient.js'></script> <script src='https://scontribute.tuoitre.vn/rv/gg_onetab.min.js'></script> <script src='https://www.google.com/recaptcha/api.js' async defer></script> <script src="/js/login-v2.js?id=e41f34b7716f4854b93d09262bd3e243"></script> <script src="/js/register-v2.js?id=27e22eaa51394f8a68d375bc52be86c9"></script> <script src="/js/social-login-v2.js?id=451c9b1cf7b529de5048cef282eba6f7"></script> <script> const toastInitElement = document.getElementsByClassName('notification-init-alert')[0]; if (toastInitElement) { (new bootstrap.Toast(toastInitElement, {delay: 5000})).show() } </script> </body> </html>