2011-08-10 13 views
16

Cung cấp cho ứng dụng khách hàng (cho phép gọi trò chơi X) và cơ sở dữ liệu phía máy chủ lưu trữ điểm số cao như thế nào sau khi kết thúc điều kiện các trò chơi an toàn sumbit một điểm số cao để các máy chủ trong một cách mà chỉ có thể được thực hiện nếu các trò chơi đã thực sự chơi (do đó để ngăn chặn bài cướp).Cách gửi an toàn điểm số cao trong trò chơi kết thúc trước để ngăn chặn bài đăng bị xâm nhập

Với vấn đề này được đặt ở đây một vài ý tưởng tôi đã suy nghĩ về

** Khi trò chơi bắt đầu gửi một session ID này hết hạn sau một khoảng thời gian nhất định sẽ được gửi đến máy chủ để xác minh

vấn đề là điều này có thể dễ dàng khai thác bằng cách yêu cầu id bắt đầu sau đó chỉ cần rèn số điểm

trạm kiểm soát ** trong trò chơi mà gửi đến máy chủ để xác minh người đó thực sự là pla ying game

một lần nữa điều này có thể được tổng hợp với một số kịch bản xảo quyệt

+0

Hãy suy nghĩ về việc chuyển câu hỏi này thành một câu hỏi ... –

+0

Tôi nghĩ rằng đó là câu hỏi @marc B – samccone

+0

@Marc B: "... làm thế nào có thể sau khi tình trạng kết thúc của trò chơi an toàn sumbit một điểm số cao cho máy chủ. .. ". Làm thế nào là khó hiểu? –

Trả lời

8

Tải lên một phát lại của trò chơi và kiểm tra tỷ số từ lần phát lại đó trên máy chủ. Tất nhiên điều này chỉ hoạt động nếu trò chơi của bạn hỗ trợ replay.

Ít nhất, hãy tạo nhật ký thô sơ về những gì đang xảy ra khi nhập và áp dụng một số kiểm tra tính chính xác.

Bạn cũng nên thêm một số kiểm tra nhất quán trong trò chơi. Khác tôi sẽ chỉ sử dụng một công cụ như ArtMoney và thay đổi số điểm trong trò chơi.

Nhưng cuối cùng, nếu người dùng viết bot thì thực sự khó khăn.

+0

Có vẻ như một người nào đó đã xem video của GWT. : D –

+0

@Amaan GWT là gì? – CodesInChaos

+0

Bộ công cụ web của Google. Họ đã đưa ra lời khuyên rất giống nhau trong video giới thiệu của họ. –

1

Làm điều này ... mất id phiên của bạn từ máy chủ, kết hợp nó với một cái gì đó trong game và sử dụng như một chìa khóa mã hóa, sau đó trong nộp dữ liệu của bạn gửi bất kỳ dữ liệu bạn muốn + một dấu thời gian hay cái gì khác từ các trạm kiểm soát trong game

có lẽ sử dụng SessionID + trạm kiểm soát id cho mã hóa khóa

+2

Và điều gì khiến người đó không đọc được chìa khóa trong trò chơi và sửa đổi điểm số trước khi gửi. Không có gì. Điều này không thể được thực hiện. – Matt

+0

Vào cuối ngày, bất kỳ giải pháp nào liên quan đến việc gửi dữ liệu điểm trở lại máy chủ đều có thể bị hỏng. Tất cả của nó về nâng cao thanh đủ cao, nơi hầu hết các ppl wont đánh lừa với làm điều đó. – iamkrillin

1

gì về một cái gì đó như thế này:

  1. Có máy chủ gửi một nonce - 'băm ký' bằng chìa khóa và dấu thời gian, vv bí mật của máy chủ,
  2. Have a băm dựa trên một số datastructures nội + khách hàng chủ chốt và gửi nó đến máy chủ định kỳ
  3. làm điều này qua SSL

và @iamkrillin đánh bại tôi vào nó ... nhưng tôi vẫn sẽ bài nó :)

+1

Và điều này không thành công nếu người dùng hơi thay đổi chức năng gửi điểm cao để gửi một giá trị cao hơn 10 lần. Không có số lượng mã hóa sẽ giúp bạn tiết kiệm nếu khách hàng bị xâm phạm. –

+0

Thêm vào những gì @Wladimir đã nói - thay vì thực sự gửi các hành động bạn có thể gửi một 'băm' của các cấu trúc dữ liệu như tôi đã đề cập - bạn sẽ có thể 'tái tạo' tính hợp lệ của dữ liệu đó mặc dù ... chỉ chọn một vài những người sẽ làm phức tạp vấn đề đủ cho một ai đó để phá vỡ hệ thống – PhD

+0

@Wladimir: Đăng bình luận. Bình luận của bạn đến song song :) – PhD

5

Không có cách nào để bạn ngăn chặn phía khách hàng bị thao túng. Nó đang được kiểm soát bởi người chơi và anh ta có thể giới thiệu những thay đổi tinh tế cho logic ứng dụng phía máy khách mà sẽ không thể phát hiện được ở phía máy chủ. Giải pháp duy nhất tôi biết là gửi tất cả hành động của người dùng đến máy chủ (tất cả cùng một lúc ở cuối trò chơi hoặc liên tục trong khi người dùng đang chơi) và yêu cầu máy chủ xác minh (tính toán lại điểm số). Nếu các hành động dẫn đến điểm số mà người dùng tuyên bố đã đạt được thì hãy chấp nhận điểm số. Nếu các hành động không khớp với điểm số - từ chối. Sẽ khó khăn hơn nhiều khi tạo ra các hành động giả mạo phù hợp về mặt logic.Nó sẽ không ngăn chặn tất cả các kỹ thuật gian lận tuy nhiên (google cho "nhằm proxy", một cái gì đó tương tự có thể có thể trong trò chơi của bạn là tốt).