ব্রাউজার / এইচটিএমএল 5 গেমের জন্য অ্যান্টি-চিট জাভাস্ক্রিপ্ট


35

আমি জেএস / এইচটিএমএল 5 তে একক প্লেয়ার অ্যাকশন আরপিজি তৈরির বিষয়ে উদ্যোগ নেওয়ার পরিকল্পনা করছি এবং আমি প্রতারণা রোধ করতে চাই। আমার ১০০% সুরক্ষা দরকার নেই, যেহেতু এটি কোনও মাল্টিপ্লেয়ার গেম হবে না তবে আমি কিছু স্তর সুরক্ষা চাই।

তাহলে আপনি কী কৌশলগুলি মাইনাইফ এবং অবরুদ্ধকরণের বাইরে পরামর্শ দিচ্ছেন?

আমি কিছু সার্ভারের পক্ষে সরল চেকিং করতে বিরক্ত করব না, তবে আমি আমার সমস্ত গেমের অবস্থার সার্ভারের দিকে পরিবর্তন রেখে ডায়াবলো 3 পাথ যেতে চাই না।

যেহেতু এটি এক ধরণের আরপিজি হতে চলেছে আমি একটি পরিসংখ্যান পরিদর্শক তৈরির ধারণা নিয়ে এসেছি যা তাদের মূল্যবোধগুলিতে হঠাৎ পরিবর্তনগুলি পরীক্ষা করে, তবে আমি নিশ্চিত নই যে এটি কীভাবে সামঞ্জস্যপূর্ণ এবং বিশ্বস্ত হতে পারে।

ভেরিয়েবল এবং ফাংশনগুলি বন্ধ হয়ে যাওয়া সম্পর্কে কী? যখনই সম্ভব ছোট এস্কোপগুলিতে কাজ করা নিরাপদ তবে এটি কি চেষ্টা করার মতো?

জাভাস্ক্রিপ্টের চেকসামের মতো এটির পাঠ্যটি স্বতঃপরীক্ষণ করার জন্য কি কি আছে?

ব্রাউজার নির্দিষ্ট সমাধান আছে? আমি কেবল তাড়াতাড়ি বিল্ডসগুলিতে এটি ক্রোমের জন্য সীমাবদ্ধ করার ঝামেলা করব না।


কোথায় আপনার তথ্য সংরক্ষণ করা হয়, আপনার তথ্য সংরক্ষণ করা হয়?
কুকুর ডগ

আপনি ডাইবেল 3 সম্পর্কে মজার কথা বলছেন, "ডায়াবলো 1 ওয়ে" ক্লায়েন্টকে বিশ্বাস করে ঠিক সেটাই ছিল। গুগল অনুসন্ধান করুন যদি আপনি খুব অল্প বয়সী হয়ে থাকেন তবে তার কারণ কী হয়েছিল তা মনে রাখতে পারছেন না!
ভালমন্ড


অ্যাপোক, এই মুহূর্তে আমার কাছে ধারণার প্রমাণ রয়েছে এবং আমি কোনও ধরণের দৃistence়তা প্রয়োগ করি নি - তবে আমি প্রথমে বিল্ড এবং / অথবা স্থানীয় স্টোরেজে কিছু ডিবি দৃ pers়তা প্রয়োগ করার পরিকল্পনা করছি যাতে খেলোয়াড়রা কেবল যেখানেই গেছে সেখান থেকে খেলতে না পারে। হ্যাঁ, ভ্যাল্ডমন্ড আমি তখন ডায়াবলোতে আমার ভাগ করেছিলাম। তবে আমি একটি প্রতিযোগিতামূলক মাল্টিপ্লেয়ার গেম, বা একটি পূর্ণ পতাকাযুক্ত এএএ তৈরি করছি না। বাই 56, আমি আমার কোড চুরি করার বিষয়ে উদ্বিগ্ন নই (যেভাবে যাই হোক সেই বাজেটি কে চাইবে?)
বিলি নিনজা

দুর্ভাগ্যক্রমে, আপনাকে ডায়াবলো 3 পথে যেতে হবে, আপনি যদি হ্যাক /
চিট

উত্তর:


46

সংক্ষিপ্ত উত্তরটি আপনি এটি করতে পারবেন না। বিশেষ করে উত্স থেকে, ক্লায়েন্টের পক্ষে চলমান যে কোনও কিছুই আপনার কৌশলকে তুচ্ছভাবে পরাস্ত করতে সংশোধন করা যেতে পারে। যদি আপনি আকস্মিক পরিবর্তনের জন্য কোনও ক্লায়েন্ট সাইড চেকার স্থাপন করেন তবে একজন ব্যবহারকারী কেবলমাত্র চেকারটিকে অক্ষম করতে পারবেন।

সুসংবাদটি হ'ল, সাধারণত, একক প্লেয়ার গেমগুলিতে খুব কম প্রতারণা হয়। লাইন রাইডারের মতো বৃহত্তর "ইউটিউব হাইস্কোর" সম্প্রদায় রয়েছে এমন গেমগুলির জন্য একমাত্র প্রধান ব্যতিক্রম, যেখানে খেলোয়াড়রা ইউটিউব জুড়ে একে অপরের সাথে প্রতিযোগিতা করে।

যদি আপনি এটির জন্য লক্ষ্য রাখছেন বা লোকেরা গেমের সাথে প্রতারণা করতে পারে বা নিজেরাই উচ্চ স্কোর রাখছে (যা মাল্টিপ্লেয়ারের একটি রূপ) তবে আপনার যা করা উচিত তা হ'ল গণনা সার্ভার-সাইড । হ্যাঁ, সমস্ত কিছু গুরুত্বপূর্ণ। এমনকি ব্যবহারকারীকে স্কোর দেওয়ার চেষ্টা করার জন্য আপনি গণনা ক্লায়েন্টের পক্ষে পুনরাবৃত্তি করতে পারবেন না এবং তারপরে এটি সার্ভারের সাথে এটি 'যাচাই' করতে পারবেন কারণ ব্যবহারকারী তখন চেকটি অক্ষম করতে পারে এবং চেকগুলি নিশ্চিত করে এমন কোনও সিস্টেম অক্ষম করতে পারে।

আমি আশা করি এর আরও ভাল উত্তর পাওয়া গেলেও তা পাওয়া যায় না।

এটি বলেছিল, এমন কিছু জিনিস রয়েছে যা আপনি এটিকে ঠকানো সামান্য কঠিন করে তুলতে পারেন। তারা গুরুতর কাউকে এটি করতে এবং প্রতারণার জন্য একটি সরঞ্জামকিট প্রকাশ করা থেকে বিরত রাখবে না, তবে এটি তাদের ধীর করবে:

  • আপনার জেএসটিকে মিনিফাইয়েড এবং অবলম্বন করুন যা কোডটি পড়তে একেবারে শক্ত করে তুলবে। আপনি ডি-মাইনাইফ এবং ডি-ওবফাসকেটকে বাছাই করতে পারেন তবে আপনি কখনও সঠিক ভেরিয়েবল এবং ফাংশন নাম এবং কোনও মন্তব্য ফিরে পেতে পারবেন না।
  • একটি ভিন্ন ভাষা দিয়ে মান বেক করুন। এই ক্ষেত্রে আপনি স্থির সেটআপ ভেরিয়েবলগুলি পরিচালনা করতে পিএইচপি বা অন্যান্য সার্ভার সাইডের ভাষা ব্যবহার করতে পারেন। যদি জাম্পের দূরত্বটি সর্বদা 2 স্পেস হওয়ার কথা, তবে সাধারণত আপনি প্লেয়ার অবজেক্টের জন্য একটি জাম্পের দূরত্ব নির্ধারণ করেন। পিএইচপি দিয়ে এটি হ্যান্ডেল করবেন না যাতে জেএস উত্সটি 2 মিলিয়ন জায়গায় সমস্ত কোডে প্লাস্টার করে শেষ হয়। এটি আপনার জেএসকেও গতি বাড়িয়ে তুলতে পেরে এর সুখী অতিরিক্ত পার্শ্ব প্রতিক্রিয়া রয়েছে।
  • কিছু অনুশীলনের সাহায্যে আপনি মিশ্রণে দক্ষ হয়ে উঠবেন এবং প্রতিটি প্লেয়ারের জন্য আপনি নিজের জেএস কাস্টম-বিল্ডও করতে পারবেন। প্রতারণা প্রতিরোধের অন্য উপায় যা। যদি প্রতিটি প্লেয়ারের কোডটি কোনওভাবে পৃথক হয়, তবে এমন প্রতারণা লেখা শক্ত যা কোনও সরঞ্জামকিটের অংশ হতে পারে।
  • অবশেষে, আপনি প্লেয়ারটির পরিচয়ের ভিত্তিতে উত্সটি চেকসাম করতে পারেন। তাদের আইপি ঠিকানা এবং / অথবা ব্যবহারকারীর নাম বলুন। আপনি জানেন যে জেএসের প্লেয়ার-নির্দিষ্ট সংস্করণটি কী হবে, আপনি একটি চেকসামে বেক করতে পারেন এবং এটি অন্য প্রান্তে একইরকম হতে হবে। কোনও ক্লায়েন্ট-সাইড জেএসের মতো অক্ষম করা সহজ, তবে আবারও একটি সরঞ্জামকিট তৈরি করা একটু শক্ত করে তোলে।

So. যেমনটি আপনি দেখতে পাচ্ছেন, সম্ভবত এই পথে যেতে উপযুক্ত নয়। এটা কঠিন. করার জন্য প্রচুর নিরীহ কোডিং অনুশীলনের প্রয়োজন হয় এবং শেষ পর্যন্ত পরাজিত করা তুলনামূলক সহজ। প্রতারণা রোধ করতে আপনার সমস্ত ক্যালকুলেশন সার্ভার-সাইড করতে হবে। অথবা যেতে দাও, এবং প্রতারণা ঘটবে তা মেনে নিন।


লাইন রাইডার উদাহরণটি সার্ভার-সাইডটি করতে আসলে বেশ তুচ্ছ, ব্যবহারকারীর নিজের মানচিত্রটি আপলোড করে স্কোরটি গণনা করে। তবে আরকেডের মতো গেমগুলি বৃহত কাজ না করে স্কোর সার্ভার-সাইড গণনা করা প্রায় অসম্ভব।
orlp

@ নাইটক্র্যাকার আপনি ঠিক আছেন, তবে লাইন রাইডারের মতো কিছু সত্ত্বেও, আপনি যদি কেবল খেলাটি শেষ হওয়ার পরে পরীক্ষা করেন, ভিডিওটি তৈরি করা হয়েছে এবং ইউটিউবগুলি ইতিমধ্যে ফাঁকি পেয়েছে। ব্যবহারকারী যখন খেলতে চলেছে তখন আপনাকে মানচিত্রটি আপলোড করা উচিত, তুচ্ছ যে পথটি গণনা করা হবে এবং তারপরে সেটিকে প্রেরণ করুন। গেমটি পথটি গণনা করতে সক্ষম হওয়া উচিত নয়। (আমরা এটিতে প্রমাণ, যা খেলা নয় ঠকাই উপার্জন বিষয়ে কথা যদি হয় এটা ঠিক সহজ যথেষ্ট যে প্রতারণার তার ভক্তদের কাছে সুস্পষ্ট হয়।।)
DampeS8N

14

আমি ইতিমধ্যে এখানে ইতিমধ্যে একটি প্রশ্নের উত্তর দিয়েছি , এবং আমি দুঃখিত তবে কিন্তু:

আমি কিছু সার্ভারের পক্ষে সরল চেকিং করতে বিরক্ত করব না, তবে আমি আমার সমস্ত গেমের অবস্থার সার্ভারের দিকে পরিবর্তন রেখে ডায়াবলো 3 পাথ যেতে চাই না।

আপনি এখানে বলতে পারেন যে সবচেয়ে খারাপ জিনিস। আপনি যদি একটি "অ্যান্টি-চিট" ইঞ্জিন করতে চান, আপনাকে এটি করতে হবে। সার্ভার-সাইডের কাজের সুবিধার্থে আপনি ক্লায়েন্ট-সাইডের যে কোনও কিছু যুক্ত করতে পারেন, তবে আপনাকে কখনই ক্লায়েন্টকে বিশ্বাস করতে হবে না। আপনার সমস্ত লজিক কমপক্ষে সার্ভার-সাইড হতে হবে। আপনি যদি চান তবে এটি ক্লায়েন্ট-সাইডে পুনরুত্পাদন করতে পারেন, তবে কোনও ক্লায়েন্ট-সাইড কেবলমাত্র সমাধান এটি করবে না।

এবং যাইহোক, আপনি যদি নিজের প্রোগ্রামটির দুর্বলতা খুঁজে পেতে চান, তবে তা অবহেলা করবেন না, লোকেদের আপনার কোডটি দেখতে দিন এবং আপনাকে "এখানে, আপনার একটি সমস্যা আছে" বলে দিন।

এটি আপনার কোড, আপনার ব্যবহারকারী এবং সম্প্রদায়ের পক্ষে ভাল good


3
সার্ভার কর্তৃপক্ষের জন্য +1, আপনি ক্লায়েন্টকে বিশ্বাস করার চেষ্টা করলে এটি কার্যকর হয় না ...
ভালমন্ড

জিনিসগুলি ক্লায়েন্ট-সাইডে পুনরুত্পাদন করা বিপজ্জনক। তার সাথেও সাবধানতা অবলম্বন করুন, কারণ যদি সমস্ত কিছু ক্লায়েন্টের পাশে প্রতিলিপি করা হয় তবে ব্যবহারকারী সার্ভারের সাথে চেকগুলি সংযোগ বিচ্ছিন্ন করে প্রতারণা করতে পারে। তারপরে তারা গেমটি খেলতে পারে, একটি ভিডিও রেকর্ড করতে পারে এবং একটি ইউটিউব তারকা হতে পারে। এটি কেবল একক প্লেয়ার গেমগুলির জন্য প্রযোজ্য, যা এই গেমটি হবে।
ড্যাম্প এস

আমি যখন ক্লায়েন্ট-সাইডের বিষয়ে কথা বলি, তখন এটি "মুভমেন্ট গণনা", "সংঘর্ষ" ইত্যাদির জন্য ... এটি মাল্টিপ্লেয়ার গেমের জন্যও উভয় পক্ষেই করা যেতে পারে। সার্ভার-সাইড গণনা সর্বদা অগ্রাধিকার হিসাবে বিবেচনা করা উচিত, তবে এটি যখন ক্লায়েন্ট-সাইডেও থাকতে পারে যখন সার্ভারের বিলম্ব হয় তখন এটি সাহায্য করতে পারে। তবে "চেক চিট" যুক্তিযুক্ত যে কোনও কিছুর জন্য, তারপরে আমি সম্মত হই যে সবকিছুই সার্ভার-সাইড হওয়া উচিত।
ডাইভার্ড্প্প

হ্যাঁ, আমি এটি পেয়েছি তবে আমার যে সামান্য ফ্রি-টাইম রয়েছে তার শখের হিসাবে আমি প্রকল্পটি করছি। এই জাতীয় সার্ভার চেকিং করা প্রকল্পের জটিলতা অনেকাংশেই অযোগ্য করে তোলে। ঠিক আছে, আমি এটি জেনেও প্রকল্পটি চালিয়ে যাব এবং যদি এটির থেকে বড় এবং গুরুতর হয়ে উঠতে শুরু করে তবে আমি কিছু গুরুতর সার্ভার সাইড নিয়ন্ত্রন করতে এসেছি, সম্ভবত নোড.জেএস দিয়ে with
বিলি নিনজা


3

ভাল, শুরু করার জন্য একটি ভাল জায়গা হ'ল অবজেক্ট.ফ্রিজে ফাংশন (যা বস্তুর প্যাচিংয়ের বিরুদ্ধে সুরক্ষা সক্ষম করবে) ব্যবহার করা।

এটি "নতুন বৈশিষ্ট্য যুক্ত হতে বাধা দেয়", "বিদ্যমান বৈশিষ্ট্যগুলি মুছে ফেলা থেকে বাধা দেয়", "বিদ্যমান বৈশিষ্ট্য, বা তাদের গণ্যকরণ, কনফিগারেশন বা লিখনযোগ্যতা পরিবর্তন হতে বাধা দেয়"; অভ্যন্তরীণ অবস্থার কোনও পরিবর্তন অ্যাক্সেসরদের মাধ্যমে করা উচিত। নিম্নলিখিত উদাহরণটি ক্রোমে কাজ করে (ফায়ারফক্সে কাজ করা উচিত, আমি IE সম্পর্কে যদিও জানিনা ...):

var b = {}
// Fill your object with whatever you want
b.a = "ewq"
// Freeze all changes
Object.freeze(b)
// Try to put new value. This wont throw any error, put wont work either, 
// as we shall see ...
b.b = "qwe"

// Values 
console.log(b.a); // outputs "eqw"
console.log(b.b); // outputs  undefined

5
এমনকি এটি কেবলমাত্র একটি নির্ধারিত প্রতারককে ধীর করে দেবে। যদি সে উত্সটি চুরি করতে না পারে তবে তার নিজের মেশিনে এটি হোস্ট করুন এবং ফ্রিজ কোডটি মুছে ফেলুন এবং তার ব্রাউজারটিকে নতুন পৃষ্ঠাটি পুরানো বলে ভাবতে প্ররোচিত করতে তার হোস্ট হোস্ট ফাইলটি ব্যবহার করুন এবং এটি সার্ভারের সাথে পুনরায় সংযোগ স্থাপন করুন।
ড্যাম্প এস

@ ড্যাম্প এস ৮ এন হ্যাঁ, আমি অনুমান করি আপনি ঠিক বলেছেন।
কাল্পনিক

আমি ওপিতে যেমন বলেছিলাম, আমি কেবল কিছু স্তর সুরক্ষা চাই।
বিলি নিনজা

এটি কিছুতেই সহায়তা করবে না! ব্যবহারকারী কেবল প্রথম জেএস ফাংশনে একটি ডিবাগার ব্রেকপয়েন্ট সেট করতে পারেন যা কার্যকর হয়ে যায় এবং Object.freeze = function(o) {};জেএস কনসোলে প্রবেশ করে।
ফিলিপ

2

দুর্ভাগ্যক্রমে, আপনি হ্যাক / চিট সম্পর্কে সত্যই যদি উদ্বিগ্ন হন তবে আপনাকে ডায়াবল 3 পথে যেতে হবে। যদি আপনি না হন তবে প্রাথমিক চেকগুলি আপনাকে অবশ্যই করতে হবে বা এর জন্য দৃ strongly়ভাবে পরামর্শ দেওয়া উচিত।

  • চেকগুলি কিনুন - আমি যদি কিছু কিনে রাখি তবে আমার পর্যাপ্ত সোনা থাকা উচিত
  • বিক্রয়চেকস - আমি যদি কিছু বিক্রি করছি তবে আমার পণ্য ট্রেড চেকগুলিতে আমার সেই জিনিসটি থাকা দরকার - অস্ত্র বিক্রির মতো
  • সজ্জিত চেকগুলি - আমি যদি অস্ত্র সজ্জিত করি তবে আমার কি এটির মালিকানা আছে?
  • ক্ষয়ক্ষতি পরীক্ষা - যদি আমি কোনও কিছুতে (শত্রু) আক্রমণ করি, তবে আমার অস্ত্রটি যে সর্বোচ্চ ক্ষতি করতে পারে তার চেয়ে বেশি আমি আঘাত করতে পারি না (এখানে আপনি ক্লায়েন্টটি কোন অস্ত্রটি ব্যবহার করেছেন তা বলার আশা করা উচিত নয় কারণ এটি আগে অব্যাহত রাখা উচিত ছিল)
  • ক্রাফটিং চেকস - যদি আমি কিছু তৈরি করি তবে আমার কি সমস্ত উপাদান / উপাদান প্রয়োজন?

... ইত্যাদি

1 পয়েন্ট হ'ল নায়কের অবস্থানটি খুব জটিল, যেহেতু আপনি এটি সম্পর্কে খুব বেশি চিন্তিত নন আপনি এটি ছেড়ে দিতে পারেন তবে এটির চেয়ে ভাল আপনি নীচের মত ন্যূনতম চেক দিয়েও তা করতে পারেন

  • আমি স্থান 1 @ টি 1 এ আছি, আমি স্থান 2 টি 2 এ আছি, স্থান 1 থেকে স্থান 2 এ ভ্রমণ করতে সর্বনিম্ন সময়টি কী হবে এবং এটি আমার টি 2 - টি 1 এর সাথে মেলে। মানচিত্রের আকারের উপর নির্ভর করে আপনার এই থেকে ছোট থেকে বড় আকারের ম্যাপিং থাকতে পারে। আপনার কমপক্ষে প্রধান ক্ষেত্রগুলির যেমন এনপিসি - বস, এনপিসি - শত্রু স্পান অঞ্চল (প্রয়োজনীয় অবস্থান সঠিক নয়) তালিকা থাকা উচিত

আশা করি এটি সহায়তা করে, এটিকে কঠিন মনে হলেও সত্যিকারের কাজের গেমগুলি তৈরি করতে আপনার শেখা দরকার


দুর্দান্ত উত্তর! আমি কীভাবে সার্ভার চেকিং বাস্তবায়ন করতে পারি সে সম্পর্কে একটি প্রশ্ন লিখছিলাম, সার্ভার চেকিং বাস্তবায়ন করতে মোটামুটি কতটা কঠিন তা পরিমাপ করতে। আপনি দেখুন, আমি কোনও এমএমও-এর মতো ব্যাকবোন বাস্তবায়ন করতে এবং কয়েক ঘন্টা ব্যয় করতে চাই না এবং কেবলমাত্র ক্লায়েন্টের অনুরোধের পরামিতি বা সে জাতীয় কিছু উপেক্ষা করে এটি সহজেই প্রতারণাযোগ্য। বা আরও দুর্দান্ত বৈশিষ্ট্য বা পোলিশ জিনিস সরবরাহ করার পরিবর্তে সুরক্ষার জন্য একটি সহজ মজাদার গেম হওয়ার চেষ্টা-যা চেষ্টা করা হয়েছিল তা কেবল অতিরিক্ত পরিমাণে করুন।
বিলি নিনজা

1

এটি মূলত সম্ভব নয়। প্রতারণা ঠেকাতে আপনি যে কোনও জায়গায় রেখেছিলেন তার চারপাশে কাজ করা এত সহজ হবে।

জিনিসটি এমন কোনও সফ্টওয়্যার যা আপনি লোকদের বিতরণ করেন তা এটিকে মেমরিতে সহজেই সংশোধন করতে পারে।

তারা যদি প্রতারণা করতে চায় তবে তাদের ছেড়ে দিন। তারা কেবল নিজের জন্য খেলাটি নষ্ট করছে। এই পরিস্থিতিতে প্রতারণার কোন বাস্তব ব্যবহারিক ব্যবহার নেই, আপনি কেবল নিজের জন্য গেমপ্লেটি ধ্বংস করে ফেলবেন।


1

প্রতারণা প্রতিরোধ / হ্রাস করতে আপনি নিতে পারেন এমন একটি পরিমাপের জন্য আমার ধারণা ছিল (অন্যান্য উত্তর ছাড়াও)। আপনি এটি সেট আপ করতে পারেন যাতে ক্লায়েন্টকে একবারে সমস্ত উত্স কোড দেওয়া না হয়, বরং প্রতিবার ক্লায়েন্টটি স্টোরটিতে একটি নতুন আইটেম কিনতে বলে, ক্লায়েন্টকে নির্দিষ্ট তথ্য প্রেরণ করতে হবে সার্ভার এবং কেবল যা কিছু তারা কিনছে তার জন্য সমস্ত তথ্য রিসিভ করে যদি তথ্যটি যা মনে করা হয় তার সাথে মেলে। যদি তা না হয় তবে সার্ভার তাদের আইপি বা কিছু কালো তালিকাভুক্ত করে।

আপনি এটি বিভিন্ন উত্স সংস্করণ ব্যবহার সম্পর্কে ড্যাম্পেস ৮এন যা বলেছিলেন তার সাথে একত্রে এটি ব্যবহার করতে পারেন, যদি আপনি প্রচুর বিভিন্ন সংস্করণ তৈরির উপায় খুঁজে বের করতে পারেন, যাতে প্রতিটি ব্যবহারকারী প্রতিটি সময় সম্পূর্ণ ভিন্ন উত্স সংস্করণ চালাবেন, ব্যর্থ হ'ল সেই উত্স সংস্করণটিকেও ব্ল্যাকলিস্টগুলি পরীক্ষা করে দেখুন, এটি আবার কখনও উত্স সংস্করণের জন্য সঠিক আইটেমের তথ্য দেয় না।

এটি কার্যকর হওয়ার মূল কারণটি হ'ল কোনও হ্যাকার যদি প্রথমবার হ্যাকটি পায় না, তবে হ্যাকটি সংশোধন করা তাদের পক্ষে আরও শক্ত হয়ে উঠবে, কারণ প্রতিবার হ্যাক পুরোপুরি কাজ করে না, কারণ তাদের হ'ল তাদের আইপি পরিবর্তন করুন এবং নতুন উত্স সংস্করণে আবার হ্যাক লিখুন।


আমি সাবধান থাকব আপনি শেষ কাজটি করতে চান কোনও দুর্ঘটনাবশত একজন পরিশোধকারী গ্রাহককে পারমা-নিষিদ্ধ করা।
জন ম্যাকডোনাল্ড

@ জনম্যাকডোনাল্ড সত্য, এটি। সম্ভবত ঠিক সেই উত্স সংস্করণটি হত্যা করছে। এইভাবে যদি তারা দুর্ঘটনাক্রমে ফাঁদটি ট্রিগার করে তবে হ্যাকাররা তাদের সমস্ত হ্যাক পুনরায় পুনর্নির্মাণ করতে গিয়ে তাদের কেবল ব্রাউজারটি রিফ্রেশ করতে হবে।
এজেম্যানসফিল্ড

0

হ্যাঁ, এটি পুরোপুরি করা যায় না । সর্বদা সার্ভারে পরীক্ষা করুন। গেমটিতে প্রভাব ফেলছে এমন কোনও কিছুর জন্য সার্ভারের অনুমোদনের প্রয়োজন।

এটি সেই প্রসার যা আমি অন্যান্য উত্তরগুলির পুনরাবৃত্তি করব।

তবে, আমরা কেবল সার্ভারে পরীক্ষা না করে চিট প্রতিরোধের শেষের দিকে আরও অনেক কিছু করতে পারি। ঠিক আছে, আমাদের কিছু বিশেষ সার্ভার চেক যুক্ত করতে হতে পারে। তবে, সাবধান থাকুন যে ক্লায়েন্টের সাইড চেকগুলি মূল্যহীন নয়, যখন চিটাররা এতে জড়িত না থাকে তখন তারা ব্যান্ডউইথ এবং সার্ভারের কাজ সংরক্ষণ করে।

যে বলেন:

  • রুক্ষ ক্লায়েন্টদের প্রশমন করুন: এইচটিটিপিএসের উপরে পরিবেশন করুন, ক্রস-অরিজিন রিসোর্স শেয়ারিং (সিওআরএস) ব্যবহার করুন, কেবল একই উত্সকে মঞ্জুরি দিন, সাবসোর্স অখণ্ডতা ব্যবহার করুন। আমি সমস্ত অনুরোধে এটি প্রয়োগের জন্য কোনও পরিষেবা কর্মী বাস্তবায়নের পরামর্শ দিচ্ছি, যার অর্থ এইও হবে যে গেমটি কেবল এটি HTTP এ সরিয়ে দিয়ে কাজ করবে না (কারণ এইচটিটিপিএস ছাড়া কোনও পরিষেবা কর্মী নেই, সার্ভার কর্মী ক্লায়েন্টের অংশটি করছে CORS এবং সার্ভারটি CORS আশা করে), এবং তারা HTTPS এর মাধ্যমে পরিবেশন করলে এটি কাজ করবে না কারণ সার্ভার অন্য উত্সকে প্রত্যাখ্যান করবে।
  • স্ক্রিপ্টিং প্রশমিত করুন: প্রমাণীকরণ ব্যবহার করুন এবং কোনও ক্রিয়াকলাপ করার জন্য একটি টোকেন প্রয়োজন। প্রতিটি আপডেট চক্রটি সার্ভারকে ক্লায়েন্টকে একটি নতুন টোকেন দেওয়া উচিত, এবং টোকেন যা করা তা করে তা গ্রাস করা হয় ... যে কোনও কিছু করার জন্য একটি বৈধ টোকেন প্রয়োজন, টোকনটি সর্বদা পরিবর্তিত হয়, এবং এভাবেই অনুমান করা যায় না, এবং যদি ক্লায়েন্ট থাকে একই টোকেনটি দুবার প্রেরণ করে বা একটি ভুল টোকেন প্রেরণ করে সার্ভার জানে যে কিছু শেষ up অতিরিক্ত সুরক্ষার জন্য: একটি গোপন কী দিয়ে টোকেনের একটি বার্তা প্রমাণীকরণ কোড (ম্যাক) তৈরি করুন এবং এটি কুকিতে যুক্ত করুন। কুকি সংশোধন করার ফলে অধিবেশনটি মারা যাবে (এবং তাদের কীটি অনুমান করা দরকার), এবং টোকেনটি সংশোধন করা ম্যাক চেককে ব্যর্থ করে দেবে।
  • কোড পরিবর্তনগুলি প্রশমিত করুন: সাবসোর্স অখণ্ডতা বাদ দিয়ে (যা আধুনিক ব্রাউজারগুলি রানটাইমের সময়ও যাচাই করবে) আপনার ভেরিয়েবলগুলিকে একটি সীমিত সুযোগের অধীনে রাখুন (লেটস, সেলফ এক্সিকিউটিং বেনাম ফাংশন এবং জাভাস্ক্রিপ্ট মডিউল ব্যবহার করে)। এছাড়াও, ডিওএমের উপর নির্ভর করবেন না (ডিওএমটি কেবলমাত্র IO এর জন্য, স্টোরেজ নয়, যদি আপনার ডিওএম অবজেক্টগুলিকে মোড়ানোর জন্য এবং তাকে মোড়কে যুক্ত করতে হয় তবে) attach এই উপায়ে, আপনি কনসোলে যা কিছু করুন গেম যুক্তিতে পৌঁছাতে সক্ষম হবেন না (যদি না আপনি কিছু ব্রাউজারের দুর্বলতা কাজে লাগান)। আপনি বিকাশকারী সরঞ্জাম সনাক্ত করতে কৌশলগুলি ব্যবহার করার বিষয়টিও বিবেচনা করতে পারেন (এগুলি ব্রাউজার প্রতি নির্দিষ্ট, এবং সমস্ত ক্ষেত্রে কাজ করতে পারে না বা ভবিষ্যতে কাজ করা বন্ধ নাও করতে পারে ... এইভাবে এটি অস্ত্রের লড়াই)।
  • কিছু আছে? অধিবেশন ভেঙে গেছে? বর্তমান ম্যাচ থেকে প্লেয়ারটিকে কিক করুন, আবার লগইন করার জন্য অনুরোধ করুন। একটি ক্যাপচা বিবেচনা করুন ... এর ব্যবহারকারীর বলার সুবিধা রয়েছে যে "আমরা জানি বিরল কিছু ঘটছে" (এটি কোনও এলোমেলো সার্ভার ব্যর্থতা ছিল না), এবং হ্যাঁ, এটি প্রশমিতকরণের একটি রূপ। ওহ, এবং এই লগ করতে ভাঁজ করবেন না। ভুয়া পোস্টগুলি রোধ করতে এবং সমর্থন টিকিটের জবাব দেওয়ার জন্য উভয়ই কেন ঘটেছে তা যাচাই করতে আপনাকে সক্ষম হতে হবে।

হ্যাঁ, এগুলি সমস্ত প্রশমিতি। আমাদের এখনও একটি কাস্টম তৈরি ব্রাউজার থাকতে পারে যা অখণ্ডতা যাচাই করে না এবং আপনাকে স্থানীয় স্কোপে ভেরিয়েবলের সাথে পৌঁছাতে এবং গণ্ডগোলের সুযোগ দেয় ... তারপরে গেম কোডটি ডান টোকেন সহ পরিবর্তিত ডেটা প্রেরণ করবে এবং সেখান থেকেই সার্ভারের চেকগুলি আসে খেলা এবং খেলার।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.