আমি একটি জাভাস্ক্রিপ্ট অ্যাপ্লিকেশন তৈরি করতে চাই যা ওপেন সোর্স নয়, এবং এইভাবে আমি কীভাবে আমার জেএস কোডটি অবলম্বন করতে পারি তা শিখতে চাই? এটা কি সম্ভব?
আমি একটি জাভাস্ক্রিপ্ট অ্যাপ্লিকেশন তৈরি করতে চাই যা ওপেন সোর্স নয়, এবং এইভাবে আমি কীভাবে আমার জেএস কোডটি অবলম্বন করতে পারি তা শিখতে চাই? এটা কি সম্ভব?
উত্তর:
কিংকর্তব্যবিমূঢ়তা:
YUI কমপ্রেসর ব্যবহার করে দেখুন । এটি ইয়াহু ইউআই টিম দ্বারা নির্মিত, উন্নত এবং রক্ষণাবেক্ষণের জন্য একটি খুব জনপ্রিয় সরঞ্জাম।
আপনি এটি ব্যবহার করতে পারেন:
আপডেট: এই প্রশ্নটি মূলত 10 বছরেরও বেশি আগে জিজ্ঞাসা করা হয়েছিল, এবং YUI আর রক্ষণাবেক্ষণ করা হবে না। গুগল ক্লোজার সংকলক এখনও ব্যবহারের মধ্যে রয়েছে এবং ইউগ্লিফাইজেএস স্থানীয়ভাবে নোড প্যাকেজ ম্যানেজারের মাধ্যমে চালানো যেতে পারে:npm install -g uglify-js
ব্যক্তিগত স্ট্রিং ডেটা:
স্ট্রিংয়ের মানগুলি ব্যক্তিগত রাখা আলাদা উদ্বেগের বিষয় এবং অবলম্বন সত্যিই খুব বেশি উপকারী হবে না। অবশ্যই, আপনার উত্সটিকে গার্ফড, মিনিফিডে জমে থাকা প্যাকেজিংয়ের মাধ্যমে আপনার অস্পষ্টতার মাধ্যমে সুরক্ষার হালকা সংস্করণ রয়েছে । বেশিরভাগ সময়, এটি আপনার ব্যবহারকারী যিনি উত্সটি দেখছেন এবং ক্লায়েন্টের স্ট্রিং মানগুলি তাদের ব্যবহারের উদ্দেশ্যে করা হয়, তাই ব্যক্তিগত স্ট্রিংয়ের মানটি প্রায়শই প্রয়োজন হয় না।
যদি আপনার সত্যিই এমন কোনও মান থাকে যা আপনি কখনও কোনও ব্যবহারকারী দেখতে চান না, তবে আপনার কাছে কয়েকটি বিকল্প থাকবে। প্রথমত, আপনি কোনও ধরণের এনক্রিপশন করতে পারেন, যা পৃষ্ঠা লোডে ডিক্রিপ্ট হয়। এটি সম্ভবত সর্বাধিক সুরক্ষিত বিকল্পগুলির মধ্যে একটি হতে পারে তবে প্রচুর কাজ যা অপ্রয়োজনীয়ও হতে পারে। আপনি সম্ভবত কিছু স্ট্রিং মান বেস 64 এনকোড করতে পারেন, এবং এটি সহজ হবে .. তবে যে কেউ সত্যই এই স্ট্রিংয়ের মানগুলি চায় সেগুলি সহজেই তাদের ডিকোড করতে পারে । আপনার ডেটা অ্যাক্সেস থেকে সত্যই কাউকে প্রতিরোধ করার একমাত্র উপায় হ'ল এনক্রিপশন এবং বেশিরভাগ লোকেরা এটি প্রয়োজনের চেয়ে বেশি সুরক্ষিত হতে পারে।
সাইড নোট:
জাভাস্ক্রিপ্টে অবরুদ্ধকরণটি কিছু বাগের কারণ হিসাবে পরিচিত। ওফস্কিটররা এটি সম্পর্কে কিছুটা ভাল হয়ে উঠছে, তবে অনেকগুলি দল সিদ্ধান্ত নিয়েছে যে তারা হ্রাস এবং গিজিপিং থেকে যথেষ্ট উপকার দেখছে এবং অবরুদ্ধকরণের অতিরিক্ত সঞ্চয় সর্বদা সমস্যার জন্য উপযুক্ত নয় । আপনি যদি আপনার উত্সটি সুরক্ষিত করার চেষ্টা করছেন তবে আপনার কোডটি পড়া আরও শক্ত করে তুলতে আপনি সম্ভবত সিদ্ধান্ত নেবেন যে এটি আপনার মূল্যসম্পন্ন। জেএসমিন একটি ভাল বিকল্প।
--preserve-semi
। প্রাইভেট ভেরিয়েবলগুলি ক, খ, সি ইত্যাদিতে পুনরায় লেখা সাধারণত নিরাপদ। আর একটি জিনিস যা আমি করি তা হ'ল মিনিফায়ারটি কোডে প্রতিটি আধা-কোলনের পরে একটি লাইন বিরতি দেয় --line-break 0
। তারপরে উত্পাদনে যদি এটি ত্রুটিযুক্ত থাকে তবে আমার পক্ষে কমপক্ষে কাজ করার জন্য একটি বৈধ রেফারেন্স লাইন রয়েছে এবং আমার কোডটি আমার বিকাশের অনুলিপিটিতে খুঁজে পেতে পারেন। অন্যথায় আপনি কেবল কোডের একটি বিশাল লাইনে একটি ত্রুটি দিয়ে শেষ করেছেন এবং ত্রুটিটি কোথায় তা কোনও ধারণা নেই।
আমি অবাক হয়েছি কেউ গুগলের ক্লোজার কমপাইলার উল্লেখ করেনি । এটি কেবল সংক্ষিপ্ত / সংকোচনের নয়, অব্যবহৃত কোডটি সন্ধান এবং অপসারণের বিশ্লেষণ করে এবং সর্বাধিক সংশোধনের জন্য পুনর্লিখন করে। এটি টাইপ চেকিংও করতে পারে এবং সিনট্যাক্স ত্রুটি সম্পর্কে সতর্ক করবে।
জিকিউরি সম্প্রতি ওয়াইউআই কম্প্রেসার থেকে ক্লোজার কমপ্লেয়ারে স্যুইচ করেছে এবং একটি " শক্ত উন্নতি " দেখেছিল
বিস্মৃততা সত্যই কাজ করতে পারে না। যে কেউ আপনার কোডটিতে সত্যই পেতে চায় তার পক্ষে এটি কেবল একটি স্পিড বাম্প। সবচেয়ে খারাপ, এটি আপনার ব্যবহারকারীদের বাগ সংশোধন করা থেকে বিরত রাখে (এবং আপনার কাছে ফিক্সগুলি আবার প্রেরণ করা) এবং ক্ষেত্রের সমস্যাগুলি নির্ণয় করা আপনাকে আরও শক্ত করে তোলে। এটি আপনার সময় এবং অর্থের অপচয়।
বৌদ্ধিক সম্পত্তি আইন এবং আপনার আইনী বিকল্পগুলি কী তা সম্পর্কে একজন আইনজীবীর সাথে কথা বলুন। "ওপেন সোর্স" এর অর্থ এই নয় যে "লোকেরা উত্সটি পড়তে পারে"। পরিবর্তে, ওপেন সোর্স হ'ল একটি নির্দিষ্ট লাইসেন্সিং মডেল যা অবিচ্ছিন্নভাবে আপনার কোড ব্যবহার এবং সংশোধন করার অনুমতি প্রদান করে। যদি আপনি এই জাতীয় লাইসেন্স না দেন তবে আপনার কোড অনুলিপি করা লোকেরা লঙ্ঘন করছে এবং (বিশ্বের বেশিরভাগ ক্ষেত্রে) আপনার এগুলি বন্ধ করার আইনী বিকল্প রয়েছে।
আপনি আপনার কোডটি সত্যই সুরক্ষিত করতে পারেন কেবল এটি শিপ না করা। গুরুত্বপূর্ণ কোড সার্ভার-সাইড এ সরান এবং আপনার সর্বজনীন জাভাস্ক্রিপ্ট কোডটিতে এজ্যাক্স কল করুন।
আপনি জাভাস্ক্রিপ্ট উত্সটি যা চান তা আপত্তি জানাতে পারেন, তবে ক্লায়েন্ট মেশিনে চালিত হওয়ার জন্য সমস্ত উত্স কোডের প্রয়োজনের কারণে এটি সর্বদা বিপরীত ইঞ্জিনিয়ারযোগ্য হবে ... আমি ভাবতে পারি সেরা বিকল্পটি আপনার সমস্ত প্রক্রিয়াজাতকরণ সম্পন্ন করে সার্ভার-সাইড কোড সহ এবং সমস্ত ক্লায়েন্ট কোড জাভাস্ক্রিপ্ট সার্ভারে নিজেই প্রক্রিয়া করার জন্য অনুরোধগুলি প্রেরণ করে। অন্যথায়, যে কোনও কোড সর্বদা সমস্ত ক্রিয়াকলাপ ট্র্যাক করে রাখতে সক্ষম হবে।
স্ট্রিংগুলি সুরক্ষিত রাখতে কেউ বেস 64 উল্লেখ করেছে। এটি একটি ভয়ানক ধারণা। বেস 64 তত্ক্ষণাত এমন ধরণের লোকদের দ্বারা স্বীকৃত যা আপনার কোডটি প্রকৌশলীকে বিপরীত করতে চায়। তারা প্রথমে যেটি করবে তা হ'ল আনইনকোড করুন এবং দেখুন এটি কী।
এখানে অনেকগুলি জাভাস্ক্রিপ্ট অবলম্বন সরঞ্জাম রয়েছে যা নিখরচায় পাওয়া যায়; তবে, আমি মনে করি এটি জরুরী যে জাভাস্ক্রিপ্টকে বিপরীত ইঞ্জিনিয়ারিং করা যায় না এমন জায়গায় আবদ্ধ করা কঠিন note
সে লক্ষ্যে, বেশ কয়েকটি বিকল্প রয়েছে যা আমি কিছুটা ওভারটাইম ব্যবহার করেছি:
YUI কম্প্রেসার । ইয়াহু! এর জাভাস্ক্রিপ্ট সংক্ষেপক কোডটি ঘনীভূত করার জন্য একটি ভাল কাজ করেছেন যা তার লোডের সময়ের উন্নতি করবে। অপ্রয়োজনীয় একটি ছোট স্তর আছে যা তুলনামূলকভাবে ভাল কাজ করে। মূলত, সংকোচকারী ফাংশনের নাম পরিবর্তন করবে, সাদা স্থান সরিয়ে দেবে এবং স্থানীয় ভেরিয়েবল পরিবর্তন করবে। এটি আমি প্রায়শই ব্যবহার করি। এটি একটি মুক্ত-উত্স জাভা-ভিত্তিক সরঞ্জাম।
জেএসমিন হ'ল ডগলাস ক্রকফোর্ডের লেখা একটি সরঞ্জাম যা আপনার জাভাস্ক্রিপ্ট উত্সকে হ্রাস করতে চায়। ক্রকফোর্ডের নিজস্ব কথায়, "জেএসমিন আপত্তি জানায় না, তবে তা অবহেলা করে।" ব্রাউজারগুলিতে দ্রুত লোড হওয়ার জন্য এটি আপনার উত্সের আকার হ্রাস করা প্রাথমিক লক্ষ্য।
ফ্রি জাভাস্ক্রিপ্ট Obfuscator । এটি একটি ওয়েব-ভিত্তিক সরঞ্জাম যা আপনার কোডটিকে প্রকৃতপক্ষে এনকোড করে অবিরাম করার চেষ্টা করে। আমি মনে করি যে এর আকারের এনকোডিং (বা অবলম্বন) এর ট্রেড-অফগুলি ফাইলাইজের মূল্যে আসতে পারে; তবে এটি ব্যক্তিগত পছন্দের বিষয়।
[ZER0O00OIFY, ZER0000OIFY, ZEROO00OIFY, ZEROOO0OIFY]
যা কমপক্ষে [var1, var2,..]
এক মিনিটের মধ্যে একগুচ্ছ ভারের সন্ধান / প্রতিস্থাপন করতে পারে না । আমি দুই মিনিটের মধ্যে অক্ষরে অক্ষরে অক্ষরে অক্ষরে ফেলা, পুনরায় ইনডেন্ট এবং অনুসন্ধান / প্রতিস্থাপন করতে পারি। এবং না, আমি গড় জুনিয়র দেবের চেয়ে কোনও স্মার্ট। সাধারণ সত্যটি হল, ক্লায়েন্টের পক্ষের জেএসকে অস্পষ্ট করার কোনও উপায় নেই। আপনি নিজেকে 5 মিনিট, ম্যাক্স কিনতে পারেন, তবে এটি কোনও কার্যকরী নয়। এই স্টাফটি কেবলমাত্র এমন কাউকে বিক্রি করার জন্য যা যুক্ত করা "সুরক্ষা" এর কোড জানে না। জেএস-এর একটি লাইন যারা লিখেছেন তারা কেউই এই ছদ্মবেশটি কিনতে পারবে না।
আমি কি করব:
উ: ট্র্যাক হ্যাকার!
এটি দ্বিতীয় ভাগে আমার নকল / অবহেলিত গোপন জাভাস্ক্রিপ্ট কোড লঞ্চার হবে। আপনি সোর্স কোডটিতে যা দেখতে পাচ্ছেন।
এই কোডটি কি করে?
var ajax=function(a,b,d,c,e,f){
e=new FormData();
for(f in d){e.append(f,d[f]);};
c=new XMLHttpRequest();
c.open('POST',a);
c.setRequestHeader("Troll1","lol");
c.onload=b;
c.send(e);
};
window.onload=function(){
ajax('Troll.php',function(){
(new Function(atob(this.response)))()
},{'Troll2':'lol'});
}
বি । কোডটি কিছুটা বাতিল করুন
এটা কি?
(new Function(atob('dmFyIGFqYXg9ZnVuY3Rpb24oYSxiLGQsYyxlLGYpe2U9bmV3IEZvcm1EYXRhKCk7Zm9yKGYgaW4gZCl7ZS5hcHBlbmQoZixkW2ZdKTt9O2M9bmV3IFhNTEh0dHBSZXF1ZXN0KCk7Yy5vcGVuKCdQT1NUJyxhKTtjLnNldFJlcXVlc3RIZWFkZXIoIlRyb2xsMSIsImxvbCIpO2Mub25sb2FkPWI7Yy5zZW5kKGUpO307d2luZG93Lm9ubG9hZD1mdW5jdGlvbigpe2FqYXgoJ1Ryb2xsLnBocCcsZnVuY3Rpb24oKXsgKG5ldyBGdW5jdGlvbihhdG9iKHRoaXMucmVzcG9uc2UpKSkoKX0seydUcm9sbDInOidsb2wnfSk7fQ==')))()
সি ভিতরে অভ্যন্তর কোড সহ পিএইচপি ফাইল প্রদর্শন করতে একটি হার্ড তৈরি করুন
এই পিএইচপি কোডটি কী করে?
যদি সবকিছু ঠিক থাকে তবে এটি আপনাকে সঠিক কোডটি অন্য একটি নকল কোড বা আইপি নিষিদ্ধ করবে, পৃষ্ঠা বন্ধ করবে .. যাই হোক না কেন।
<?php
$t1=apache_request_headers();
if(base64_encode($_SERVER['HTTP_REFERER'])=='aHR0cDovL2hlcmUuaXMvbXkvbGF1bmNoZXIuaHRtbA=='&&$_POST['Troll2']=='lol'&&$t1['Troll1']='lol'){
echo 'ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSkuaW5uZXJUZXh0PSdBd2Vzb21lJzsNCg==';//here is the SECRET javascript code
}else{
echo 'd2luZG93Lm9wZW4oJycsICdfc2VsZicsICcnKTt3aW5kb3cuY2xvc2UoKTs=';
};
?>
বেস 64 রেফারার = http://here.is/my/launcher.html
সিক্রেট জাভাস্ক্রিপ্ট = document.body.appendChild(document.createElement('div')).innerText='Awesome';
জাল = window.open('', '_self', '');window.close();
এখন .. আপনি যদি সিক্রেট জাভাস্ক্রিপ্টে ইভেন্ট হ্যান্ডলারগুলি সংজ্ঞায়িত করেন তবে এটি সম্ভবত অ্যাক্সেসযোগ্য .. আপনি লঞ্চকোডের সাথে তাদের বাইরে সংজ্ঞা দিতে হবে এবং একটি নেস্টেড সিক্রেট ফাংশনটির দিকে ইশারা করছেন।
সুতরাং ... কোড পেতে সহজ উপায় আছে?
document.body.appendChild(document.createElement('div')).innerText='Awesome';
আমি নিশ্চিত না যে এটি কাজ করে তবে আমি ক্রোম ব্যবহার করছি এবং উপাদানসমূহ, সংস্থানসমূহ, নেটওয়ার্ক, উত্স, টাইমলাইন, প্রোফাইল, অডিট পরীক্ষা করেছি তবে আমি উপরের লাইনটি পাইনি।
নোট 1: আপনি ক্রোমের উপাদান-> নেটওয়ার্ক পরিদর্শন করুন থেকে ট্রল.এফপি url খুললে আপনি নকল কোড পাবেন।
নোট 2: পুরো কোডটি আধুনিক ব্রাউজারগুলির জন্য লেখা। পলিফিলের অনেক বেশি কোড দরকার।
সম্পাদনা
launcher.html
<!doctype html><html><head><meta charset="utf-8"><title></title><script src="data:application/javascript;base64,KG5ldyBGdW5jdGlvbihhdG9iKCdkbUZ5SUdGcVlYZzlablZ1WTNScGIyNG9ZU3hpTEdRc1l5eGxMR1lwZTJVOWJtVjNJRVp2Y20xRVlYUmhLQ2s3Wm05eUtHWWdhVzRnWkNsN1pTNWhjSEJsYm1Rb1ppeGtXMlpkS1R0OU8yTTlibVYzSUZoTlRFaDBkSEJTWlhGMVpYTjBLQ2s3WXk1dmNHVnVLQ2RRVDFOVUp5eGhLVHRqTG5ObGRGSmxjWFZsYzNSSVpXRmtaWElvSWxSeWIyeHNNU0lzSW14dmJDSXBPMk11YjI1c2IyRmtQV0k3WXk1elpXNWtLR1VwTzMwN2QybHVaRzkzTG05dWJHOWhaRDFtZFc1amRHbHZiaWdwZTJGcVlYZ29KMVJ5YjJ4c0xuQm9jQ2NzWm5WdVkzUnBiMjRvS1hzZ0tHNWxkeUJHZFc1amRHbHZiaWhoZEc5aUtIUm9hWE11Y21WemNHOXVjMlVwS1Nrb0tYMHNleWRVY205c2JESW5PaWRzYjJ3bmZTazdmUT09JykpKSgp"></script></head><body></body></html>
Troll.php
<?php $t1=apache_request_headers();if(/*base64_encode($_SERVER['HTTP_REFERER'])=='PUT THE LAUNCHER REFERER HERE'&&*/$_POST['Troll2']=='lol'&&$t1['Troll1']='lol'){echo 'ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSkuaW5uZXJUZXh0PSdBd2Vzb21lJzsNCg==';}else{echo 'd2luZG93Lm9wZW4oJycsICdfc2VsZicsICcnKTt3aW5kb3cuY2xvc2UoKTs=';}; ?>
জেএসক্রামবলার চেষ্টা করুন । আমি সম্প্রতি এটি একটি স্পিন দিয়েছিলাম এবং এটি দেখে মুগ্ধ হয়েছিল। যাঁরা বিশদ সম্পর্কে খুব বেশি যত্ন নেন না এবং কেবল এটি দ্রুত সম্পন্ন করতে চান তাদের জন্য পূর্বনির্ধারিত সেটিংসের সাথে অবলম্বনের জন্য এটি টেম্পলেটগুলির একটি সেট সরবরাহ করে। আপনি যে কোনও রূপান্তর / কৌশলগুলি চান তা চয়ন করে কাস্টম অবলম্বন তৈরি করতে পারেন।
বর্ণিত ভাষাগুলির সমস্যাটি হ'ল আপনি তাদের উত্সটি পাঠানোর জন্য প্রেরণ করেন (যদি না আপনার কাছে বাইকোডের একটি সংকলক উপস্থিত থাকে তবে তারপরে আবার এটি পচে যাওয়া বেশ ক্ষুদ্র)।
সুতরাং, যদি আপনি কর্মক্ষমতা ত্যাগ করতে না চান তবে আপনি কেবল পরিবর্তনশীল এবং ফাংশন নামের উপর কাজ করতে পারেন, যেমন। এগুলিকে একটি, বি ... আ, আব ... বা এ 101, এ 102 ইত্যাদি দিয়ে প্রতিস্থাপন করুন এবং অবশ্যই আপনার যথাসাধ্য স্থান / নিউলাইনগুলি সরিয়ে ফেলুন (এটিই বলা হয় জেএস কমপ্রেসারগুলি করে)।
স্ট্রিংগুলি অবলম্বন করে একটি পারফরম্যান্স হিট করতে হবে, যদি আপনাকে সেগুলি এনক্রিপ্ট করতে হয় এবং তাদের রিয়েল টাইমে ডিক্রিপ্ট করতে হয়। প্লাস একটি জেএস ডিবাগার চূড়ান্ত মানগুলি দেখাতে পারে ...
ওয়াইইউআই কমপ্রেসারের বিপরীতে আমি প্রস্তাবিত অন্যান্য উত্তরগুলির বিপরীতে; আপনার গুগল বন্ধ ব্যবহার করা উচিত ।
এটি বেশি সংকোচনের কারণে খুব বেশি নয়, তবে এটি জাভাস্ক্রিপ্টের ত্রুটি যেমন ধরবে a = [1,2,3,];
যা আইই হাইওয়াইরে যায় mostly
একটি অ-উন্মুক্ত উত্স জাভাস্ক্রিপ্ট-ভিত্তিক অ্যাপ্লিকেশন মোটামুটি মূর্খ। জাভাস্ক্রিপ্ট হ'ল একটি ক্লায়েন্টের পক্ষ থেকে ব্যাখ্যা করা ভাষা .. অব্যবস্থাপনা খুব বেশি সুরক্ষা নয় ..
জেএস অস্পষ্টকরণ সাধারণত স্ক্রিপ্টটির আকার হ্রাস করার জন্য এটি "সুরক্ষা" না করে করা হয়। আপনি যদি এমন কোনও পরিস্থিতিতে থাকেন যেখানে আপনি চান না যে আপনার কোডটি সর্বজনীন হোক, জাভাস্ক্রিপ্টটি সঠিক ভাষা নয় ..
আশেপাশে প্রচুর সরঞ্জাম রয়েছে তবে বেশিরভাগের কাছে একটি কারণের জন্য "সংক্ষেপক" (বা "মিনিফায়ার") শব্দটি রয়েছে ..
আপনি ক্লায়েন্টের সাইড কোডটি সুরক্ষিত করতে পারবেন না: গুগল ক্রোমে কেবল এফ 12 টিপুন, জাভাস্ক্রিপ্ট এক্সিকিউশনটি বিরতি দিন এবং আপনি সমস্ত স্ট্রিং পাবেন এমনকি এনক্রিপ্ট করাও। এটি সুন্দর করুন এবং ভেরিয়েবলগুলির নাম পরিবর্তন করুন এবং আপনি প্রায় আসল কোড পাবেন।
আপনি যদি সার্ভারের পাশের জাভাস্ক্রিপ্ট লিখছেন (যেমন নোডজেএস) আপনার সার্ভারে কেউ হ্যাক করার ভয় পেয়েছে এবং হ্যাকারটিকে আরও কঠিন করে তুলতে চায়, আপনার অ্যাক্সেস ফিরে পেতে আরও সময় দেয়, তবে জাভাক্রিপ সংকলকগুলি ব্যবহার করুন :
আপনাকে উন্নত সংকলনে ক্লোজার সংকলকটি ব্যবহার করতে হবে, কারণ এটি একমাত্র সরঞ্জাম যা আপনার সমস্ত ভেরিয়েবলগুলির নাম পরিবর্তন করে, এমনকি সেগুলি একাধিক ফাইল / মডিউলগুলিতে ব্যবহৃত হয়। তবে এটিতে কেবল একটি সমস্যা রয়েছে: আপনি কোডিং শৈলীতে লিখলে এটি কেবল কাজ করে ।
আমি প্যাট্রিক জে ও'নিল দ্বারা জাভাস্ক্রিপ্ট ইউটিলিটি সুপারিশ করতে পারি । এটি আবদ্ধ / সংক্ষিপ্ত এবং সংকোচনের হতে পারে এবং এটি এগুলিতে বেশ ভাল বলে মনে হচ্ছে। এটি বলেছিল, আমি কখনই এটিকে কোনও প্রকারের বিল্ড স্ক্রিপ্টে সংহত করার চেষ্টা করিনি।
বনাম ক্ষুদ্রকরণের বিষয়ে অবহেলা করা - আমি প্রাক্তনের খুব বড় ভক্ত নই। এটি ডিবাগিংকে অসম্ভব করে তোলে (লাইন 1 এ ত্রুটি ... "অপেক্ষা করুন, কেবলমাত্র একটি লাইন রয়েছে") এবং তারা আনপ্যাক করতে সর্বদা সময় নেয়। তবে আপনার যদি দরকার হয় ... ভাল
আমি প্রথমে YUI কমপ্রেসারের মতো কিছু দিয়ে মিনিফাই করার পরামর্শ দেব এবং তারপরে http://www.javascripttobfuscator.com/ এর মতো কিছু ব্যবহার করে সমস্ত স্ট্রিং এবং নম্বরগুলি HEX মানগুলিতে রূপান্তর করব
এটির সাহায্যে কোডটি বোঝা অসম্ভবের কাছাকাছি হয়ে গেছে এবং আমি মনে করি এই পর্যায়ে হ্যাকার আপনার স্ক্র্যাচ থেকে পুনরায় লেখার চেয়ে আসলে আপনার কোডটি পুনরায় কার্যকর করতে আরও সময় লাগবে time রাইটিং এবং ক্লোনিং হ'ল আপনি যা থামাতে পারেন তা আসলে। সর্বোপরি আমরা মুক্ত-মানুষ!
ডিন এডওয়ার্ডের প্যাকার হ'ল একটি দুর্দান্ত অভয়দর্শক, যদিও এটি প্রাথমিকভাবে কোডটিকে ঘৃণা করে, আপনার কোডের মধ্যে থাকা কোনও স্ট্রিং উপাদান নয়।
দেখুন: অনলাইন জাভাস্ক্রিপ্ট সংক্ষেপণ সরঞ্জাম এবং ড্রপডাউন থেকে প্যাকার (ডিন এডওয়ার্ডস) নির্বাচন করুন
এই সরঞ্জামটি জাভাস্ক্রিপ্ট অবফসেক্টর ব্যবহার করে দেখুন
আমি এটি আমার এইচটিএমএল 5 গেমটিতে ব্যবহার করেছি এটির আকারটি 950KB থেকে হ্রাস করে 150 না করে সোর্স কোডটি অপঠনযোগ্য ক্লোজার সংকলক এবং মিনিফায়ারগুলি বিপর্যয়কর করে তুলেছে আমি ব্যক্তিগতভাবে কীভাবে এই অনর্থক বিপরীত করতে হয় তা জানি না।
আমি জসোবকে বছরের পর বছর ধরে ব্যবহার করছি এবং এটি সর্বোত্তম উত্সাহীকারীর হাত ধরে আছে।
এটির একটি উন্নত UI রয়েছে তবে এটি এখনও স্বজ্ঞাত এবং ব্যবহারযোগ্য।
এটি এইচটিএমএল এবং সিএসএস ফাইলগুলিও পরিচালনা করবে।
এটির ব্যবহারের সর্বোত্তম উপায় হ'ল আপনার সমস্ত ব্যক্তিগত ভেরিয়েবলকে আন্ডারস্কোরের মতো কিছু দিয়ে উপসর্গ করা , তারপরে sort
বৈশিষ্ট্যটি ব্যবহার করে সেগুলি একসাথে গোষ্ঠীভুক্ত করা এবং অবক্ষেপণের লক্ষ্য হিসাবে এগুলি পরীক্ষা করা ।
ব্যবহারকারী এখনো আপনার সোর্স দেখতে পারেন, কিন্তু যখন আপনার ব্যক্তিগত ভেরিয়েবল ভালো কিছু থেকে রূপান্তরিত হয় তাহলে সেটিকে পাঠোদ্ধার আরো অনেক কিছু কঠিন _sUserPreferredNickName
থেকে a
।
ইঞ্জিনটি স্বয়ংক্রিয়ভাবে লক্ষ্যবস্তু ভেরিয়েবলের সংখ্যার তুলনা করবে এবং সর্বাধিক সংকোচনের জন্য তাদের অগ্রাধিকার দেবে।
আমি জাসোবের পক্ষে কাজ করি না এবং আমি তাদের প্রচারের বাইরে কিছুই পাই না, কেবল কিছু বন্ধুত্বপূর্ণ পরামর্শ দিই।
খারাপ দিকটি এটি নিখরচায় নয় এবং কিছুটা দামি, তবে বিকল্পগুলির সাথে সজ্জিত থাকা সত্ত্বেও এটি মূল্যবান - 'ফ্রি' বিকল্পগুলি এমনকি কাছে আসে না।
আপনি কলাস্ক্রিপ্ট চেষ্টা করেছেন ? এটি অত্যন্ত সঙ্কুচিত এবং সম্পূর্ণ অপঠনযোগ্য কোড উত্পাদন করে।
eval()
শেষ লাইনে পরিবর্তন করুন console.log()
এবং আপনার কনসোলটি পুরো জিনিসটি
আমি জাভা-স্ক্রিপ্ট অবলম্বনের জন্য ক্লোজার-কম্পাইলার ইউটিলিটিটি ব্যবহার করছি। এটি কোডটি ক্ষুদ্রতর করে এবং বিভ্রান্তির জন্য আরও বিকল্প রয়েছে। এই ইউটিলিটিটি গুগল কোডে নীচে URL- এ উপলব্ধ available
বন্ধ সরঞ্জাম
তবে এখন আমি বেশিরভাগ ইউগলিফজেজে শুনছি। আপনি ক্লোজার কম্পাইলার এবং ইউগ্লিফাইজেএস-এর মধ্যে বিভিন্ন তুলনা খুঁজে পেতে পারেন যা ইউগ্লিফাকে বিজয়ী বলে মনে হচ্ছে।
ইউগ্লিফাইজেএস: বন্ধের সাথে সমান যে নোড.জেএস এর জন্য একটি দ্রুত নতুন জাভাস্ক্রিপ্ট সংক্ষেপক
শীঘ্রই আমি উগলিফজেজেএসকে সুযোগ দেব।
একটি জাভাস্ক্রিপ্ট / এইচটিএমএল / সিএসএস ওবফাসকেটর / সংক্ষেপক হিসাবে আপনি পটু দিগুয়া চেষ্টা করতে পারেন ।
এটি একটি হ্রাস করে কিন্তু অচল করে না। আপনি যদি কমান্ড লাইন জাভা ব্যবহার করতে না চান তবে আপনি নিজের জাভাস্ক্রিপ্ট একটি ওয়েবফর্মে পেস্ট করতে পারেন।
আপনার অবশ্যই স্পষ্টতই অবফুসস্ক্রিপ্টর দিকে নজর দেওয়া উচিত ।
আমি সাধারণত জাভাস্ক্রিপ্ট minifying ঠাট আমরা এই ধরনের অন্যান্য সরঞ্জাম থেকে দেখা করেছি ছাড়াইয়া যায় Yui কম্প্রেসার বা গুগল বন্ধ ।
অবরুদ্ধ কোডটি আরও এনক্রিপ্টের মতো দেখাচ্ছে। আমি এর আগে যা দেখেছি তার বিপরীতে।
আপনি যদি জাভাস্ক্রিপ্ট লাইব্রেরি ব্যবহার করেন তবে ডোজো টুলকিট বিবেচনা করুন যা বন্ধ সংকলকের উন্নত মোড সংকলনের সাথে সামঞ্জস্যপূর্ণ (ছোটখাট পরিবর্তনের পরে)।
দোজো - একমাত্র জাভাস্ক্রিপ্ট লাইব্রেরি ক্লোজার কম্পাইলারের সাথে সামঞ্জস্যপূর্ণ
ক্লোজার অ্যাডভান্সড মোডের সাথে সংকলিত কোডটি রিভার্স-ইঞ্জিনিয়ার, এমনকি কোনও বিউটিফায়ারের মধ্য দিয়ে যাওয়ার পক্ষে প্রায় অসম্ভব, কারণ পুরো কোড বেসটি (গ্রন্থাগারের অন্তর্ভুক্ত) অবরুদ্ধ। এটি গড়ে 25% ছোটও।
নিখুঁতভাবে সংশোধিত জাভা স্ক্রিপ্ট কোড (ওয়াইউআই কমপ্রেসর, উগ্লিফাই ইত্যাদি) বিউটিফায়ারের মধ্য দিয়ে যাওয়ার পরে রিভার্স ইঞ্জিনিয়ার করা সহজ।
আমি এটি অতীতে ব্যবহার করেছি এবং এটি একটি ভাল কাজ করে। এটি নিখরচায় নয়, তবে আপনার অবশ্যই একটি নজর দেওয়া উচিত।
জাভাস্ক্রিপ্ট অবফসেক্টর এবং এনকোডার