Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> HTML

Thuộc tính isTrusted của sự kiện (Event) trong HTML DOM

Thuộc tính isTrusted của đối tượng Event trong HTML DOM trả về giá trị boolean (true hoặc false) cho biết sự kiện có được tin cậy hay không.

Quy tắc:

  • true: Sự kiện được kích hoạt bởi **hành động thực của người dùng** (click chuột, nhấn phím, chạm màn hình, cuộn...).
  • false: Sự kiện được kích hoạt bởi **mã lệnh (script)** như element.click(), dispatchEvent(), setTimeout gọi hàm xử lý...

Thuộc tính này rất quan trọng cho bảo mật: giúp phân biệt hành động thật của người dùng và kịch bản tự động (bot, script tấn công, clickjacking...).

Ví dụ minh họa

<!DOCTYPE html>
<html>
<head>
  <title>Demo isTrusted</title>
  <style>
    form { width: 70%; margin: 0 auto; text-align: center; }
    * { padding: 2px; margin: 5px; }
    input[type="button"] { border-radius: 10px; }
  </style>
</head>
<body>
  <form>
    <fieldset>
      <legend>Kiểm tra isTrusted</legend>
      <input type="email" id="email" placeholder="email@domain.com">
      <input type="password" id="pass" placeholder="Mật khẩu">
      <input type="button" id="loginBtn" value="Đăng nhập" onclick="login(event)">
      <div id="msg">Thử đăng nhập sau 2 giây (bằng script)...</div>
    </fieldset>
  </form>
  <script>
    var email = document.getElementById("email");
    var pass = document.getElementById("pass");
    var btn = document.getElementById("loginBtn");
    var msg = document.getElementById("msg");

    // Mô phỏng script tự động click sau 2 giây
    setTimeout(function() {
      email.value = "user@example.com";
      pass.value = "123456";
      btn.click(); // Gọi click() bằng script → isTrusted = false
    }, 2000);

    function login(event) {
      if (event.isTrusted) {
        msg.textContent = 'Chào mừng ' + email.value.split("@")[0] + ' (click thật)';
      } else {
        msg.textContent = 'CẢNH BÁO: Phát hiện đăng nhập tự động từ script! (isTrusted = false)';
      }
    }
  </script>
</body>
</html>

Kết quả:

  1. Ban đầu: Hiển thị thông báo chờ.
  2. Sau 2 giây (script click): Hiển thị "CẢNH BÁO: Phát hiện đăng nhập tự động..."
  3. Nếu người dùng tự click nút: Hiển thị "Chào mừng user (click thật)"

Ứng dụng thực tế

  • Chống spam/bot trên form đăng nhập, bình luận,vote.
  • Phát hiện clickjacking (kéo thả vô hình).
  • Ghi log phân biệt hành động người dùng vs tự động hóa.
  • Kết hợp với CAPTCHA, rate limiting để tăng bảo mật.

Lưu ý: isTrusted là chỉ đọc (read-only), không thể gán giá trị thủ công.