दिलचस्प पोस्ट
बश चर के साथ ब्रेस विस्तार – {0 .. $ foo} क्या बारंबार लूपिंग से कहीं ज्यादा तेज़ है? जब एक UIScrollView स्क्रॉलिंग समाप्त हो गया है, तो इसका पता कैसे लगा? मैं कैसे मोंगोडीबी में समकक्ष सम्मिलित हों? एंड्रॉइड एप्लिकेशन में एक SQLite क्वेरी कैसे करें? एक सी # कार्यक्रम के अंदर एक बाह्य निष्पादन योग्य एम्बेडिंग जावास्क्रिप्ट में टाइप बेशर क्या है? विजुअल स्टूडियो 2015 बहुत धीमा है दिनांक से जावास्क्रिप्ट ऑब्जेक्ट सरणी को सॉर्ट करें मैं Visual Studio (और / या ReSharper) का उपयोग कर कक्षा क्षेत्रों से एक कंसट्रक्टर कैसे बना सकता हूं? AVAssetReader के माध्यम से ऑडियो नमूने पढ़ना इनपुट के लिए समय सीमा मैं एक मोबाइल डिवाइस से एंड्रॉइड में एक फाइल एचटीटीपी के जरिए एक फाइल कैसे भेजूं? क्यों पीएक्स के बजाय उन्हें? यूनिक्स में एकाधिक फ़ाइलों का नाम बदलें

जावास्क्रिप्ट गेम पर धोखाधड़ी को रोकें

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

वेब के समाधान से एकत्रित समाधान "जावास्क्रिप्ट गेम पर धोखाधड़ी को रोकें"

एक समीकरण बनाकर अपने स्कोर को अस्पष्ट करें, जिसे केवल सर्वर साइड पर कैल्शुएट किया जा सकता है

संपादित करें: रोबग सही है, इसमें क्लाइंट साइड पर गणना की जानी चाहिए।

क्रोम पर लॉन्च होने पर मैंने गुस्सा पक्षी गेम काट दिया था:

http://wesbos.com/all-levels-html5-angry-birds/

हालांकि, उन्होंने कोड को इतना अस्पष्ट कर दिया है कि इसकी गणना करना असंभव है जो कि फ़ंक्शन की गणना करता हैश ..

पृष्ठ को केवल अंतिम स्कोर की बजाय गेम का एक पूर्ण पुन: चलाएं सबमिट करें। यादृच्छिक बीज और उपयोगकर्ता आदानों के फ्रेम रिकॉर्ड द्वारा एक फ्रेम को देखते हुए, आपका सर्वर खेल को अनुकरण और पुनर्निर्माण करने और स्कोर को सत्यापित करने में सक्षम होना चाहिए।

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

आप कोई धोखा दे की गारंटी नहीं दे सकते, यह असंभव है सर्वर अनुरोधों का जवाब देता है, ऐसा ही है। यह पता नहीं है कि क्लाइंट पर कौन से कोड चल रहा है, यह किस प्रकार का उपयोगकर्ता एजेंट या पर्यावरण है या यहां तक ​​कि यह आपके कोड या प्रतिकृति चल रहा है या नहीं।

आप स्पूफिंग को और अधिक कठिन बनाने के लिए विभिन्न कदम उठा सकते हैं, लेकिन आप इसे असंभव नहीं बना सकते ऐसे उपायों की लागत (आमतौर पर "सुरक्षा" के रूप में देखा जाता है) आमतौर पर संपत्ति की सुरक्षा के मूल्य के साथ संतुलित होती है।

क्लाइंट पर कुछ भी मत डालें क्लाइंट दुश्मन के हाथों में है। कभी भी कभी यह भूल नहीं।

– ऑनलाइन विश्व डिजाइन के कानून

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

अब निश्चित तौर पर यदि वे केवल कुछ बिंदुओं से स्कोर बदलते हैं तो यह जांच विफल हो सकती है, लेकिन अगर वे केवल राशि को प्रभावित करने से कम जोड़ते हैं, तो शायद यह आपके लिए ज्यादा मायने नहीं रखेगा?

base64 अपने जावास्क्रिप्ट पेज सांकेतिक शब्दों में बदलना। यह लोगों को IQ नीचे 120 से कम करना चाहिए

http://www.opinionatedgeek.com/dotnet/tools/base64encode/

आप केवल 'विश्वसनीय' मित्रों के साथ स्कोर साझा करके लीडरबोर्ड को कम महत्वपूर्ण बना सकते हैं या बस लोगों को किसी भी सामाजिक नेटवर्किंग साइट पर अपना स्कोर साझा करने की इजाजत देता है। शायद यह पहली जगह पर धोखा देने के लिए प्राथमिक प्रेरणा को हटा देता है

तब आप हमेशा आपके द्वारा इकट्ठे हुए आंकड़ों के साथ पूर्ण रूप से स्कोर की तुलना कर सकते थे, यह बताने के लिए कि कोई अच्छा कर रहा है या नहीं।