Như đã thấy trong GitHub's blog, họ đã triển khai tính năng HTML5's JavaScript pushState
để duyệt cây (dành cho trình duyệt hiện đại), mang theo điều hướng AJAX without Hash Bangs.Làm thế nào để pushState bảo vệ chống lại các giả mạo nội dung tiềm năng?
Mã này rất đơn giản:
$('#slider a').click(function() {
history.pushState({ path: this.path }, '', this.href)
$.get(this.href, function(data) {
$('#slider').slideTo(data)
})
return false
})
này khá thanh lịch cho phép họ:
- Yêu cầu chỉ là nội dung mới thông qua AJAX thay vì một trang đầy đủ
- Animate quá trình chuyển đổi
- Và thay đổi URL trình duyệt (không chỉ là
#
, như Twitter không — twitter.com/stackexchange → twitter.com/#!/stackexchange)
Câu hỏi của tôi là, làm thế nào để ngăn chặn hoạt Javascript chống lại việc sử dụng pushState
bởi một trang web bắt chước khác, kết quả là có sức thuyết phục phishing attack?
Ít nhất có vẻ như tên miền không thể thay đổi được, nhưng còn nhiều đường dẫn trong một trang, có thể bởi nhiều nhà cung cấp nội dung không liên quan và không đáng tin cậy thì sao? Có thể một con đường (I.E. /joe) về cơ bản bắt chước một mã khác (pushState /jane) và cung cấp nội dung giả định, với mục đích độc hại không?