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(),setTimeoutgọ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ả:
- Ban đầu: Hiển thị thông báo chờ.
- Sau 2 giây (script click): Hiển thị "CẢNH BÁO: Phát hiện đăng nhập tự động..."
- 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.