Trong trò chơi của tôi, người dùng có thể gây thiệt hại cho người dùng khác và lấy một số vàng của họ. Biến vàng được lưu trữ trong đối tượng người dùng PFUser khác. Làm thế nào một người dùng có thể thay đổi giá trị cho vàng được lưu trữ trong đối tượng người dùng khác của PFUser?Thay đổi dữ liệu trong đối tượng PFuser khác
Trả lời
Bạn có thể sử dụng getUserObjectWithId, từ PFQuery.
Tôi biết cách lấy một đối tượng PFuser, nhưng tôi không biết làm thế nào (hoặc nếu có thể) để thay đổi dữ liệu của một đối tượng PFUser từ một đối tượng khác mà không có quyền truy cập đặc biệt nào, nhưng tôi không biết đã xong. – Phil
Bạn đã thử cách thông thường để tham khảo nó tức là userObj ["gold"]? –
Bạn không thể lưu hoặc xóa các PFUs không được xác thực. Cách để thực hiện chức năng đó là để thiết lập một lớp học riêng cho các biến sử dụng công cộng đọc/ghi
Từ các tài liệu phân tích cú pháp -
bảo mật Đối với tài Objects
Lớp PFUser được bảo đảm bằng mặc định . Dữ liệu được lưu trữ trong một PFUser chỉ có thể sửa đổi bởi người dùng đó. Theo mặc định, dữ liệu vẫn có thể đọc được bởi bất kỳ khách hàng nào. Do đó, một số đối tượng PFUser được xác thực và có thể được sửa đổi , trong khi các đối tượng khác chỉ đọc.
Cụ thể, bạn không thể gọi bất kỳ phương pháp lưu hoặc xóa trừ khi PFUser được lấy bằng phương pháp đã xác thực, như đăng nhập hoặc đăng ký. Điều này đảm bảo rằng chỉ người dùng mới có thể thay đổi dữ liệu riêng của họ.
Đây là câu trả lời đúng. Bạn thậm chí không thể thay đổi các thuộc tính của người dùng, bởi vì nó sẽ không lưu các thay đổi. – OlivaresF
Giải pháp tốt nhất là xử lý mã đó bằng mã đám mây. Thao tác với một đối tượng PFUser không được xác thực từ phía máy khách sẽ làm tăng một số vấn đề bảo mật. Có chức năng điện toán đám mây như:
Parse.Cloud.define("stealGold", function(request, response) {
var query = new Parse.Query(Parse.User);
query.equalTo("objectId", request.params.targetObjectId);
query.find({useMasterKey : true}).then(function(results) {
// process the result of the query here
// Save the user object
});
});
Bạn có thể đọc về nó trong tài liệu ở đây: https://parse.com/docs/data#security-cloudcode
- 1. Đối tượng không thể thay đổi trong Java và truy cập dữ liệu
- 2. Cách thay đổi siêu dữ liệu trên một đối tượng trong Amazon S3
- 3. Thay đổi nội dung dữ liệu trên Thẻ đối tượng trong HTML
- 4. Chuyển đổi dữ liệu biểu mẫu thành đối tượng JSON
- 5. Xóa đối tượng trong Dữ liệu chính
- 6. JPA POJO làm đối tượng dữ liệu
- 7. Đối tượng tìm nạp dữ liệu lõi có mối quan hệ với đối tượng khác
- 8. Cơ sở dữ liệu hướng đối tượng Vs đối tượng Cơ sở dữ liệu quan hệ
- 9. thay đổi 'này' con trỏ của một đối tượng để chỉ đối tượng khác nhau
- 10. Tắt các thay đổi đối tượng cam kết trong SQLAlchemy
- 11. UICollectionXem thay đổi dữ liệu animate
- 12. So sánh đối tượng dữ liệu chính
- 13. Java, cách thay đổi cơ sở dữ liệu hiện tại sang cơ sở dữ liệu khác?
- 14. thay đổi xác thực thư trong chú thích dữ liệu
- 15. Thay đổi lớp của đối tượng trong ActiveRecord
- 16. Dữ liệu cốt lõi không lưu thay đổi đối với thuộc tính có thể biến đổi
- 17. Thay đổi Màu dữ liệu Dòng dữ liệu WPF
- 18. Nối tiếp các đối tượng truyền dữ liệu trong .NET
- 19. Cơ sở dữ liệu đối tượng mở?
- 20. Đối tượng truy cập dữ liệu PHP
- 21. Đối tượng so với Lưu trữ tài liệu (Cơ sở dữ liệu) = Sự khác biệt (nosql)?
- 22. Lưu thay đổi đối tượng tên miền
- 23. Các đối tượng không thể thay đổi trong PHP?
- 24. Find Duplicates dữ liệu đối tượng trong Danh sách đối tượng
- 25. Thay đổi dữ liệu trước khi nộp
- 26. Haskell động dữ liệu kiểu thay đổi
- 27. Python truy cập dữ liệu trong JSON đối tượng
- 28. Xóa một đối tượng trong dữ liệu cốt lõi
- 29. ID đối tượng tự động tăng trong dữ liệu lõi?
- 30. Xử lý dữ liệu trong đối tượng JSON PHP
Bạn đã tìm thấy câu trả lời cho câu hỏi của bạn? – FreeAsInBeer
Không chính xác tôi chỉ tránh tình huống, bằng cách loại bỏ tất cả các đối tượng có thể cần phải được tương tác với người chơi khác bên ngoài lớp PFUser. – Phil
Đó là những gì tôi đã tìm ra, và đó là con đường tôi phải thực hiện. Tôi đoán nó là dễ hiểu, nhưng khó chịu không kém. – FreeAsInBeer