2010-08-09 17 views
10

एचटीएमएल 5 व्यापक रूप से खेलों को डिजाइन करने के तरीके के रूप में अपनाया जाएगा, भविष्यवाणी है। लेकिन मेरे पास इसके बारे में मेरे प्रश्न हैं: कोई ऑनलाइन HTML5 गेम कभी भी सुरक्षित हो सकता है?"ब्राउज़र गेमिंग का भविष्य" कितना सुरक्षित है?

मुझे आपको एक उदाहरण दें: इस प्लेटफ़ॉर्म गेम की कल्पना करें जहां आप जीतते समय बैज प्राप्त करते हैं, उदाहरण के लिए, एक बेहद कठिन स्तर। जब आपने वास्तव में यह बैज जीता है, तो आपकी ऑनलाइन प्रोफ़ाइल अपडेट करने के लिए, सर्वर को एक अनुरोध किया जाता है। क्या यह हैकर के लिए यह अनुरोध भेजने के लिए बेहद आसान नहीं है और वास्तविक गेम खेलने के बिना बैज हासिल करना बेहद आसान नहीं है? क्योंकि:

  • क्लाइंट साइड स्रोत कोड दिखाई और असंभव
  • को छिपाने के लिए यह आदेश-पंक्ति

से जावास्क्रिप्ट निष्पादित करने के लिए मैं इसे रोकने के लिए एक रास्ता नहीं दिख रहा है संभव है हैकर अपने बैज प्राप्त करने से ... क्या इस खेल को सुरक्षित बनाने का कोई तरीका है?

+0

फ़्लैश गेम्स में एक ही समस्या है। संबंधित (फ्लैश): http://stackoverflow.com/questions/477258/how-to-cheat-and-avoid-cheating-in-flash-games –

+0

संबंधित (फ़्लैश): http://stackoverflow.com/questions/ 1666213/फ़्लैश-गेम्स-हैक-स्कोर-है -7 9 700-कैसे-सुधार-फ़्लैश-गेम-सुरक्षा –

+0

संबंधित (लगभग डुप्लिकेट): http: // stackoverflow।कॉम/प्रश्न/2785414/आईएस-फ्लैश-एक्शनस्क्रिप्ट-किसी भी सुरक्षित-से-जावास्क्रिप्ट-के-लगातार-ऑनलाइन-गेम –

उत्तर

4

हां, यदि आपने अपना गेम इस तरह डिज़ाइन किया है, तो यह हैक करना बहुत आसान होगा। लेकिन यह HTML5 के लिए विशिष्ट क्यों है? आप इसे किसी भी प्रकार के गेम के साथ कर सकते हैं जो इस तरह लिखा गया था। एक देशी डेस्कटॉप गेम के साथ भी आप अनुरोध को नकली बना सकते हैं। एकमात्र अंतर यह है कि HTTP अनुरोधों को डेस्कटॉप गेम द्वारा किए गए रिवर्स-इंजीनियरिंग अनुरोधों से आसान करना आसान है।

समाधान जीत के लिए किसी प्रकार का "सत्यापन" जोड़ना होगा - वास्तविक एल्गोरिदम गेम से गेम में भिन्न होगा। शायद उपयोगकर्ता खेल रहा है, जबकि सर्वर खेल की प्रगति को ट्रैक कर सकते हैं। यदि यह शतरंज का खेल था, उदाहरण के लिए, आप सर्वर पर हर कदम भेज सकते हैं और यह सुनिश्चित करने के लिए चाल चलाना चाहिए कि वे सही तरीके से काम करते हैं। हालांकि, वास्तविक समय के खेल के साथ यह अधिक जटिल हो जाता है।

लेकिन जो भी एल्गोरिदम आप उपयोग करने का निर्णय लेते हैं, वह हार जाएगा। यहां तक ​​कि शतरंज सत्यापन जो मैंने अभी उल्लेख किया है, को छोड़ दिया जा सकता है: आप शतरंज के अपने स्वयं के वैध खेल को "बना" सकते हैं और यह सुनिश्चित करते हुए कि गेम मान्य था, बस हर बार सर्वर पर एक ही चाल भेज दें। (यह माना जाता है कि खिलाड़ी एक कंप्यूटर के खिलाफ है - दो इंसान एक-दूसरे के खिलाफ खेलते हैं जिससे चीजों को आसान बना दिया जाता है।)

+0

ठीक है, धन्यवाद ... इस शतरंज के खेल के मामले में यह सुरक्षित होगा अगर कंप्यूटर रेफरी के रूप में कार्य करता है, चाल प्राप्त करता है, यह जांचता है कि वे वैध हैं या नहीं और जांच कर रहे हैं कि वर्तमान गेम खिलाड़ियों में से एक के लिए जीत है या नहीं। लेकिन मंच आधारित गेम के लिए इस तरह के रेफरी का निर्माण करना मुश्किल है ... – Harmen

+0

@ हार्मन: ठीक है, यही कारण है कि बड़ी कंपनियां सैकड़ों हजारों डॉलर खर्च करती हैं जो अपने गेम को हैक करने के प्रयासों को रोकने की कोशिश करती हैं। यह आसान नहीं है। और अधिक जटिल और शक्तिशाली आपके एंटी-चीट तंत्र बन जाते हैं, यह अधिक महंगा हो जाता है: अधिक सर्वर संसाधनों का उपयोग करके, अपना अधिक समय लेना आदि। –

2

यह किसी भी फ़्लैश-आधारित गेम या वास्तव में एक डाउनलोड करने योग्य क्लाइंट के साथ एक गेम से अलग नहीं है जैसे दुनिया Warcraft। गेम की निष्पक्षता के अभिन्न अंग को सर्वर पर संभालना होगा।

+0

ओह, तो सच है। इसकी स्थापना के बाद से यह मल्टीप्लेयर गेमिंग में एक समस्या रही है। वर्ल्डक्राफ्ट वर्ल्ड की बात मुझे 2007 में सॉफ्टवेयर इंजीनियरिंग रेडियो के एपिसोड की याद दिलाती है। Http://www.se-radio.net/2007/08/episode-66-gary-mcgraw में 20 मिनट तक जाएं ऑन-सुरक्षा / – Cheekysoft

1

एक तरीका यह है कि HTML5 अधिक सुरक्षित हो सकता है कि आप इसे किसी भी समय बदल सकते हैं। तो मान लीजिए कि आपके पास एक इनाम के साथ एक उपयोगकर्ता प्रदान करने के लिए एक AJAX कॉल है। आप समय-समय पर इस कॉल के हस्ताक्षर को बदल सकते हैं, ताकि 'चीट्स' अब काम नहीं करेगी। उन खिलाड़ियों का ट्रैक रखना सुनिश्चित करें जो अभी भी पुरानी एपीआई का उपयोग कर रहे हैं, और आप चीट्स का उपयोग करके खिलाड़ियों को दंडित कर सकते हैं।

नहीं, यह आपकी सभी समस्याओं का समाधान नहीं करेगा, और ऐसे तरीके हैं जिनसे सबसे समझदार खिलाड़ी इस पर काम करने में सक्षम होंगे (आपके परिवर्तनों के बारे में विस्तृत जानकारी के आधार पर), लेकिन यह निपटने के लिए कुछ तरीका प्रदान करता है यह, विशेष रूप से यदि आपके गेम को महत्वपूर्ण निवेश की आवश्यकता है। यदि खिलाड़ी ऐसा महसूस करते हैं कि उन्हें पकड़ा जाएगा तो खिलाड़ी अपनी प्रगति को जोखिम देने के इच्छुक नहीं हो सकते हैं। बस सुनिश्चित करें कि आपके पास आचरण का एक स्पष्ट कोड है जो धोखाधड़ी के लिए दंड का विवरण देता है।

संबंधित मुद्दे