2012-06-28 6 views
5

Tôi đang cố gắng sử dụng localStorage làm thay thế cookie (detest cookies) để người dùng có thể duy trì trạng thái đăng nhập trên trang web mà tôi hoạt động.LocalStorage có thể được khách hàng sửa đổi không?

Điều tôi dự định cho đến nay là lưu tên người dùng của người dùng trong localStorage và để trang web kiểm tra xem có bất kỳ thứ gì trong localStorage không và nếu bất cứ điều gì trong localStorage, nó sẽ đẩy dữ liệu localStorage vào tệp PHP qua BẬT và đẩy người dùng để bắt đầu một phiên PHP mới và trả lại họ về nơi họ đang ở.

Mặc dù tôi có mối quan tâm, tôi biết localStorage có thể được xem, trong trường hợp đó có thể mã hóa phía máy chủ dữ liệu sẽ có ý nghĩa.

Nhưng dữ liệu LocalStorage có thể được sửa đổi không? Nếu không, điều này sẽ tốt, ngay cả khi không mã hóa, nhưng rõ ràng nếu người dùng có thể sửa đổi dữ liệu localStorage, họ sẽ có quyền truy cập vào tài khoản của người khác, như bạn có thể tưởng tượng, không phải là một điều tốt.

tôi đã nghi ngờ vì JavaScript có thể được thực hiện bởi một khách hàng trong một trình duyệt, ví dụ:

javascript:alert("hello"); 

Không thể nó có thể để tìm hiểu tên var của localStorage và đặt lại giá trị của nó như thế này?

javascript:localStorage.setItem('sessionusername','superadmin'); 

Về cơ bản, tôi hỏi: Dữ liệu lưu trữ cục bộ HTML5 có thể được sửa đổi ở phía máy khách không?

Chúc mừng, Karan :)

+2

Điều này có vẻ như nó sẽ là tương đối đố l để bạn kiểm tra. –

+0

Như Anthony đã nói, bạn sẽ khó có thể đặt biến số sau đó kiểm tra lý thuyết của mình? Bạn có tất cả các mã được viết để kiểm tra nó trong OP của bạn. –

+1

Bạn nên giả định rằng bất kỳ dữ liệu nào được lưu trữ trên máy khách đều có thể bị thay đổi với số lượng kỹ năng và kiến ​​thức phù hợp. Nếu vấn đề bảo mật là vấn đề, bạn không nên căn cứ bảo mật ứng dụng của mình xung quanh bộ nhớ nhất quán hoặc cookie liên tục cho vấn đề đó. – Brad

Trả lời

7

lưu trữ địa phương được ràng buộc với các tên miền, vì vậy trong trường hợp thông thường người dùng không thể thay đổi nó trên bất kỳ tên miền khác hoặc trên localhost.

Nó cũng bị ràng buộc cho mỗi người dùng/trình duyệt, nghĩa là không có bên thứ ba nào có quyền truy cập vào bộ nhớ cục bộ đó.

Tuy nhiên, bộ nhớ cục bộ nằm ở cuối tệp trên hệ thống tệp của người dùng và có thể bị tấn công.

7

Có các tiện ích bổ sung như ví dụ: Foundstone HTML5 Local Storage Explorer cho Firefox, mà cho phép người sử dụng không chỉ để duyệt localStorage trên toàn cầu, mà còn để sửa đổi nội dung của nó:

Local Storage Explorer

Vì vậy, tôi sẽ không tin tưởng vào ai có quyền truy cập vào nó hay không ai có thể thay đổi nó. Ít nhất là từ khách hàng, nó có thể dễ dàng. Từ một trang web khác, nó có thể phức tạp hơn và chắc chắn sẽ liên quan đến "lỗ hổng bảo mật" vì nó không phải là mục đích sử dụng.

Cập nhật: Trong khi đó, ít nhất trong Firefox, bạn thậm chí không cần bất kỳ tiện ích bổ sung nào cho điều đó.Đơn giản chỉ cần nhấn tổ hợp phím Ctrl + phím Shift +tôi, chọn lưu trữ tab, và ở ngoài cùng bên trái cột chọn Local Storage - nơi bạn có thể xem và thậm chí chỉnh sửa lưu trữ cục bộ cho các trang web mà bạn đã có trong tab foreground:

LocalStorage browser
trình duyệt Local Storage built-in cho Firefox (bấm hình ảnh cho biến thể lớn hơn)