আমি কীভাবে জাভাস্ক্রিপ্ট অবজ্ঞা (সুরক্ষা) রাখতে পারি? [বন্ধ]


714

আমি একটি জাভাস্ক্রিপ্ট অ্যাপ্লিকেশন তৈরি করতে চাই যা ওপেন সোর্স নয়, এবং এইভাবে আমি কীভাবে আমার জেএস কোডটি অবলম্বন করতে পারি তা শিখতে চাই? এটা কি সম্ভব?


15
আপনি কোডটি অবলম্বন করার চেষ্টা করছেন তার কারণটি শুনে আমি আগ্রহী, এটি একটি সহায়ক উত্তর দেওয়ার জন্য কিছু প্রয়োজনীয় প্রসঙ্গ দিতে পারে।
জনএফএক্স

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


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

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

উত্তর:


404

কিংকর্তব্যবিমূঢ়তা:

YUI কমপ্রেসর ব্যবহার করে দেখুন । এটি ইয়াহু ইউআই টিম দ্বারা নির্মিত, উন্নত এবং রক্ষণাবেক্ষণের জন্য একটি খুব জনপ্রিয় সরঞ্জাম।

আপনি এটি ব্যবহার করতে পারেন:

আপডেট: এই প্রশ্নটি মূলত 10 বছরেরও বেশি আগে জিজ্ঞাসা করা হয়েছিল, এবং YUI আর রক্ষণাবেক্ষণ করা হবে না। গুগল ক্লোজার সংকলক এখনও ব্যবহারের মধ্যে রয়েছে এবং ইউগ্লিফাইজেএস স্থানীয়ভাবে নোড প্যাকেজ ম্যানেজারের মাধ্যমে চালানো যেতে পারে:npm install -g uglify-js

ব্যক্তিগত স্ট্রিং ডেটা:

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

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

সাইড নোট:

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


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

16
আরও প্রক্রিয়াকরণের জন্য সার্ভার।
ক্লোদিয়

9
অবগতির জন্য, অনলাইন Yui সংকোচকারী এখানে পাওয়া যেতে পারে: refresh-sf.com/yui
mtness

7
স্ট্রিংয়ের মানগুলি এনক্রিপ্ট করা কেবল বেস 64 এর এনকোডিংয়ের চেয়ে সামান্য বেশি উপকারে আসবে, যদি সেগুলি ব্যবহার করতে ব্রাউজারটি ডিক্রিপ্ট করতে হয়। কারণটি হ'ল আপনাকে ব্রাউজারটিকে এনক্রিপশন কীটিও দিতে হবে এবং ব্রাউজারটি ব্যবহারকারী যা কিছু করতে পারে তা করতে পারে।
বেন

9
আমি যখন YUI কমপ্রেসারের সাথে আমার মিনিফাইংটি করি তখন আমি নিশ্চিত করি এটি "নিরাপদ" মিনিফিকেশন পদ্ধতিগুলি ব্যবহার করে, অর্থাত এটি আধা-কলোন রাখে --preserve-semi। প্রাইভেট ভেরিয়েবলগুলি ক, খ, সি ইত্যাদিতে পুনরায় লেখা সাধারণত নিরাপদ। আর একটি জিনিস যা আমি করি তা হ'ল মিনিফায়ারটি কোডে প্রতিটি আধা-কোলনের পরে একটি লাইন বিরতি দেয় --line-break 0। তারপরে উত্পাদনে যদি এটি ত্রুটিযুক্ত থাকে তবে আমার পক্ষে কমপক্ষে কাজ করার জন্য একটি বৈধ রেফারেন্স লাইন রয়েছে এবং আমার কোডটি আমার বিকাশের অনুলিপিটিতে খুঁজে পেতে পারেন। অন্যথায় আপনি কেবল কোডের একটি বিশাল লাইনে একটি ত্রুটি দিয়ে শেষ করেছেন এবং ত্রুটিটি কোথায় তা কোনও ধারণা নেই।
zuallauz

136

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

জিকিউরি সম্প্রতি ওয়াইউআই কম্প্রেসার থেকে ক্লোজার কমপ্লেয়ারে স্যুইচ করেছে এবং একটি " শক্ত উন্নতি " দেখেছিল


60
হ্যাঁ, তবে সম্প্রতি তারা ক্লোজার সংকলকটি ছেড়ে গেছে এবং এখন ইউগ্লিফাইজেএস ব্যবহার করছে। ক্লোজার
সংকলনের

আমি এটি লক্ষ করতে চাই, যদি আপনার কৌনিক সাথে কাজ করে। নির্ভরতা ইনজেকশন এবং যুক্তিগুলির নাম পরিবর্তনের কারণে এই সরঞ্জামটি সত্যই কাজ করবে না, যদি না দেখতে পেল এমন একটি চেকবাক্স না পাওয়া যায়।
iConnor

1
দরকারী সরঞ্জাম, তবে এটি অবহেলা করে না কারণ সম্ভবত অন্য কেউ এটি উল্লেখ করেনি।
ম্যাডব্রেকস 23 '18

1
অ্যাডভান্সড অপটিমাইজেশন ( ডেভেলপার্স. com/closure/compiler/docs/api-tutorial3) এর সাথে ম্যাডব্র্যাকসটি কোডটিকে অবলম্বনের বিন্দুতে সংশোধন করবে। উদাহরণস্বরূপ, চলকগুলি ব্রিভিটির জন্য নতুন নামকরণ করা যেতে পারে।
জেসন হল

সুরক্ষার জন্য গুগল কোনও বিকল্প নয়
ফিলিপো স্নাইপার

121

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

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

আপনি আপনার কোডটি সত্যই সুরক্ষিত করতে পারেন কেবল এটি শিপ না করা। গুরুত্বপূর্ণ কোড সার্ভার-সাইড এ সরান এবং আপনার সর্বজনীন জাভাস্ক্রিপ্ট কোডটিতে এজ্যাক্স কল করুন।

Obfuscators সম্পর্কে আমার সম্পূর্ণ উত্তর এখানে দেখুন।


14
আইনজীবি সম্পর্কে +1, তবে এটি অন্য দেশে / এখতিয়ারে কাজ নাও করতে পারে।
jmort253

16
আইনজীবীরা সম্ভবত হারানো কোডের চেয়ে বেশি খরচ / সমস্যা তৈরি করে, খুব সাবধানে চিন্তা করুন এবং আইনজীবীদের জড়িত করার জন্য প্রচুর অর্থের ব্যবস্থা করুন !!
andora

11
-১: আমি বিশ্বাস করি যে জাভাস্ক্রিপ্ট বোঝে এমন আইনজীবী সন্ধান করা কঠিন হবে ... "লঙ্ঘনকারী" খুঁজে পাওয়ার জন্য ফি এবং কত সময় প্রয়োজন তা উল্লেখ করার দরকার নেই। যদি কেউ কখনও স্বাক্ষর না করে তবে কি এইচটিএমএল / জাভাস্ক্রিপ্ট ফাইলগুলিতে সমাধিযুক্ত লাইসেন্সটি সত্যই লঙ্ঘন করতে পারে? AJAX কলগুলির জন্য +1।
সতর্কতা

12
@ সতর্কতা ১) লাইসেন্সগুলি মূলত কপিরাইটযুক্ত উপাদানের ব্যবহার মঞ্জুরি সম্পর্কে । লাইসেন্স ছাড়াই এটি ব্যবহার করার অধিকার আপনার খুব কম। অধিকার পেতে আপনাকে এটিকে স্বাক্ষর করতে হবে না। লাইসেন্স একটি চুক্তি থেকে পৃথক। ২ ক) যেহেতু প্রশ্নটি এইচটিএমএল / জাভাস্ক্রিপ্ট অনুলিপি করে অনুলিপি ব্যবহার এবং ব্যবহার করার বিষয়ে, তাই লাইসেন্সটি "সমাহিত" করা হয় না, ঠিক সেখানে নেওয়া জিনিসটি ঠিক সেখানেই রয়েছে। 2 খ) লাইসেন্স ব্যতীত অন্য কারও কপিরাইটযুক্ত উপাদান ব্যবহার করার অধিকার আপনার নেই। 3) আইনজীবী জাভাস্ক্রিপ্ট বুঝতে হবে না, শুধু বৌদ্ধিক সম্পত্তি আইন।
শোওয়ার্ন

4
@ সতর্কতা অবলম্বন করবেন না এটি বিনা অনুমতিতে তাদের নিজের সাইটে ফাইল ব্যবহার করার জন্য যারা অনুলিপি করছেন তাদের শাস্তি দেওয়ার বিষয়ে is আপনি যে বিষয়ে কথা বলছেন তা লাইসেন্স নয়, একটি চুক্তি। চুক্তিগুলির জন্য পারস্পরিক সম্মতি প্রয়োজন এবং এটি দেওয়া এবং নেওয়া। লাইসেন্সগুলি আপনাকে বৌদ্ধিক সম্পত্তি ব্যবহারের অধিকার দেয়। লাইসেন্সগুলি এক উপায় (মালিক আপনাকে জিনিস দিচ্ছে), আপনাকে স্বাক্ষর করতে হবে না কারণ আপনি কিছু দিচ্ছেন না। অনেকগুলি "সফ্টওয়্যার লাইসেন্স চুক্তিগুলি" আসলে চুক্তি কারণ তারা সম্পত্তিটি লাইসেন্স দেওয়ার বাইরে এবং কখনও কখনও মামলা করার অধিকারের মতো হাস্যকর বিষয়গুলিতে চলে যায়।
শোবার্ন

49

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

স্ট্রিংগুলি সুরক্ষিত রাখতে কেউ বেস 64 উল্লেখ করেছে। এটি একটি ভয়ানক ধারণা। বেস 64 তত্ক্ষণাত এমন ধরণের লোকদের দ্বারা স্বীকৃত যা আপনার কোডটি প্রকৌশলীকে বিপরীত করতে চায়। তারা প্রথমে যেটি করবে তা হ'ল আনইনকোড করুন এবং দেখুন এটি কী।


45
আমি যেখানেই যাই, এর সর্বাধিক সাধারণ উত্তর "আমি কীভাবে আমার জাভাস্ক্রিপ্ট অবহেলা করতে পারি?" "আপনার এটি নিয়ে চিন্তা করা উচিত নয় কারণ কেউ এটি অবিস্মরণ করতে পারে।" এটি আসলে কোনও উত্তর নয়।
ট্র্যাভিস উইলসন

2
@ বিবেক: কিছুটা দেরি হলেও আমি যা বোঝাতে চেয়েছি তা হ'ল "সার্ভার-সাইড কোড"। জাভাস্ক্রিপ্ট কেবল কোনও সার্ভারে ব্রাউজারে না চালানো সম্ভব, তবে আমি জানি না যে এটি কতটা সাধারণ।
ক্লদিউ

8
@ ট্রাভিস: আমি বলিনি "আপনার এটি নিয়ে চিন্তা করা উচিত নয়"। আমি কেবল বলেছি যে আপনি যদি কোনও ক্লোজড-সোর্স প্রোগ্রাম চান, আপনি এটি ক্লায়েন্ট-সাইড জাভাস্ক্রিপ্টে লিখতে চাইছেন না, কারণ আপনার কোনও আপত্তি বিপরীত ইঞ্জিনিয়ার হওয়া থেকে বাধা দেবে না।
ক্লডিউ

8
ঠিক। যা কোনওভাবেই উত্তর দেয় না "আমি কীভাবে আমার জাভাস্ক্রিপ্টটি অবজ্ঞা করতে পারি"। অবরুদ্ধকরণ একটি বিমূর্ত ধারণা নয়, এটি প্রযুক্তিগত। অপ্টটি কেবল "কীভাবে?"
ম্যাডব্রেকস

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

45

এখানে অনেকগুলি জাভাস্ক্রিপ্ট অবলম্বন সরঞ্জাম রয়েছে যা নিখরচায় পাওয়া যায়; তবে, আমি মনে করি এটি জরুরী যে জাভাস্ক্রিপ্টকে বিপরীত ইঞ্জিনিয়ারিং করা যায় না এমন জায়গায় আবদ্ধ করা কঠিন note

সে লক্ষ্যে, বেশ কয়েকটি বিকল্প রয়েছে যা আমি কিছুটা ওভারটাইম ব্যবহার করেছি:

  • YUI কম্প্রেসার । ইয়াহু! এর জাভাস্ক্রিপ্ট সংক্ষেপক কোডটি ঘনীভূত করার জন্য একটি ভাল কাজ করেছেন যা তার লোডের সময়ের উন্নতি করবে। অপ্রয়োজনীয় একটি ছোট স্তর আছে যা তুলনামূলকভাবে ভাল কাজ করে। মূলত, সংকোচকারী ফাংশনের নাম পরিবর্তন করবে, সাদা স্থান সরিয়ে দেবে এবং স্থানীয় ভেরিয়েবল পরিবর্তন করবে। এটি আমি প্রায়শই ব্যবহার করি। এটি একটি মুক্ত-উত্স জাভা-ভিত্তিক সরঞ্জাম।

  • জেএসমিন হ'ল ডগলাস ক্রকফোর্ডের লেখা একটি সরঞ্জাম যা আপনার জাভাস্ক্রিপ্ট উত্সকে হ্রাস করতে চায়। ক্রকফোর্ডের নিজস্ব কথায়, "জেএসমিন আপত্তি জানায় না, তবে তা অবহেলা করে।" ব্রাউজারগুলিতে দ্রুত লোড হওয়ার জন্য এটি আপনার উত্সের আকার হ্রাস করা প্রাথমিক লক্ষ্য।

  • ফ্রি জাভাস্ক্রিপ্ট Obfuscator । এটি একটি ওয়েব-ভিত্তিক সরঞ্জাম যা আপনার কোডটিকে প্রকৃতপক্ষে এনকোড করে অবিরাম করার চেষ্টা করে। আমি মনে করি যে এর আকারের এনকোডিং (বা অবলম্বন) এর ট্রেড-অফগুলি ফাইলাইজের মূল্যে আসতে পারে; তবে এটি ব্যক্তিগত পছন্দের বিষয়।


19
যেহেতু জাভাস্ক্রিপ্ট কোডটি ক্লায়েন্টের মেশিনে চলতে হবে, কেবলমাত্র সেই বিন্দুটিতে আবদ্ধ হওয়া খুব কঠিন নয় যেখানে কোডটি বিপরীত ইঞ্জিনিয়ারিং করা যায় না তবে অসম্ভব
শোওয়ার্ন

20
এটি পরিসংখ্যান সম্পর্কে। প্রান্তিকতাটি কী যে কেউ আপনার কোডটিতে অচলতা এবং ছাড়াই অ্যাক্সেস পেতে চলেছে? তারা এখনও অ্যাক্সেস পেতে পারে তবে প্রান্তিকের উচ্চতর যত কম লোক। খুব কম লোকই কোনও কিছু সম্পর্কে জানে, যেটি নিরাপদ। মান সুরক্ষা শ্রেণিবিন্যাস অনুশীলন।
ক্রিস স্ট্রিংফেলো

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

1
@ এসইডি আমি এমন একক প্রোগ্রামারকে চিনি না [ZER0O00OIFY, ZER0000OIFY, ZEROO00OIFY, ZEROOO0OIFY]যা কমপক্ষে [var1, var2,..]এক মিনিটের মধ্যে একগুচ্ছ ভারের সন্ধান / প্রতিস্থাপন করতে পারে না । আমি দুই মিনিটের মধ্যে অক্ষরে অক্ষরে অক্ষরে অক্ষরে ফেলা, পুনরায় ইনডেন্ট এবং অনুসন্ধান / প্রতিস্থাপন করতে পারি। এবং না, আমি গড় জুনিয়র দেবের চেয়ে কোনও স্মার্ট। সাধারণ সত্যটি হল, ক্লায়েন্টের পক্ষের জেএসকে অস্পষ্ট করার কোনও উপায় নেই। আপনি নিজেকে 5 মিনিট, ম্যাক্স কিনতে পারেন, তবে এটি কোনও কার্যকরী নয়। এই স্টাফটি কেবলমাত্র এমন কাউকে বিক্রি করার জন্য যা যুক্ত করা "সুরক্ষা" এর কোড জানে না। জেএস-এর একটি লাইন যারা লিখেছেন তারা কেউই এই ছদ্মবেশটি কিনতে পারবে না।
পিটার আর

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

23

আমি কি করব:

উ: ট্র্যাক হ্যাকার!

এটি দ্বিতীয় ভাগে আমার নকল / অবহেলিত গোপন জাভাস্ক্রিপ্ট কোড লঞ্চার হবে। আপনি সোর্স কোডটিতে যা দেখতে পাচ্ছেন।

এই কোডটি কি করে?

  1. আসল কোড লোড করে
  2. একটি কাস্টম শিরোলেখ সেট করে
  3. একটি কাস্টম ভেরিয়েবল পোস্ট

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'});
}

বি । কোডটি কিছুটা বাতিল করুন

এটা কি?

  1. বেস 64 তে উপরের মত একই কোডটি চালায়
  2. এটি সিক্রেট জাভাস্ক্রিপ্ট কোড নয়

(new Function(atob('dmFyIGFqYXg9ZnVuY3Rpb24oYSxiLGQsYyxlLGYpe2U9bmV3IEZvcm1EYXRhKCk7Zm9yKGYgaW4gZCl7ZS5hcHBlbmQoZixkW2ZdKTt9O2M9bmV3IFhNTEh0dHBSZXF1ZXN0KCk7Yy5vcGVuKCdQT1NUJyxhKTtjLnNldFJlcXVlc3RIZWFkZXIoIlRyb2xsMSIsImxvbCIpO2Mub25sb2FkPWI7Yy5zZW5kKGUpO307d2luZG93Lm9ubG9hZD1mdW5jdGlvbigpe2FqYXgoJ1Ryb2xsLnBocCcsZnVuY3Rpb24oKXsgKG5ldyBGdW5jdGlvbihhdG9iKHRoaXMucmVzcG9uc2UpKSkoKX0seydUcm9sbDInOidsb2wnfSk7fQ==')))()

সি ভিতরে অভ্যন্তর কোড সহ পিএইচপি ফাইল প্রদর্শন করতে একটি হার্ড তৈরি করুন

এই পিএইচপি কোডটি কী করে?

  1. সঠিক রেফারারের জন্য পরীক্ষা করুন (আপনার লঞ্চারের ডোমেন / দির / কোড)
  2. কাস্টম হেডার জন্য পরীক্ষা করে
  3. কাস্টম POST ভেরিয়েবলের জন্য পরীক্ষা করে

যদি সবকিছু ঠিক থাকে তবে এটি আপনাকে সঠিক কোডটি অন্য একটি নকল কোড বা আইপি নিষিদ্ধ করবে, পৃষ্ঠা বন্ধ করবে .. যাই হোক না কেন।

<?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=';}; ?>

1
ওহ এবং হ্যাঁ আমি জাভাস্ক্রিপ্ট কোডটি অবলম্বন করব।
কোকো

1
এটি এমন কিছু যা আমি স্রেফ ক্র্যাকারকে ট্রল করে নিয়ে ভাবছিলাম। আমি পিএইচপি ব্যবহার না করেই এই জাতীয় কিছু দেখতে চাই :)
pgarciacamou

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

আমি মনে করি এটি কোনও ধরণের বাধা নয়। তবে কনসোল কীভাবে খুলতে হয় তা জানেন, তিনি বেসও 64 এনকোডিং / ডিকোডিং সম্পর্কে খুব সহজেই জানেন।
টুডো

19

জেএসক্রামবলার চেষ্টা করুন । আমি সম্প্রতি এটি একটি স্পিন দিয়েছিলাম এবং এটি দেখে মুগ্ধ হয়েছিল। যাঁরা বিশদ সম্পর্কে খুব বেশি যত্ন নেন না এবং কেবল এটি দ্রুত সম্পন্ন করতে চান তাদের জন্য পূর্বনির্ধারিত সেটিংসের সাথে অবলম্বনের জন্য এটি টেম্পলেটগুলির একটি সেট সরবরাহ করে। আপনি যে কোনও রূপান্তর / কৌশলগুলি চান তা চয়ন করে কাস্টম অবলম্বন তৈরি করতে পারেন।


7
জেএসক্র্যামবলারের সাবস্ক্রিপশন খুব ব্যয়বহুল ... সস্তার সাবস্ক্রিপশনের জন্য ন্যূনতম 3 মাসের মূল্য প্রয়োজন $ 145 - এটি পাগল।
বারবুশিন

1
তাদের এখন একটি নিখরচায় পরিকল্পনা রয়েছে। অন্যান্য সাবস্ক্রিপশন পরিকল্পনাগুলি এখনও সেই ব্যয়বহুল।
ব্যবহারকারী 7610

2
নিখরচায় পরিকল্পনার মধ্যে কেবলমাত্র অপ্টিমাইজেশন এবং ম্যানিফিকেশন অন্তর্ভুক্ত থাকে।
জিন হোমিনাল

1
'নিখরচায় পরিকল্পনায় অপ্টিমাইজেশন এবং মিনিফিকেশন অন্তর্ভুক্ত রয়েছে', হ্যাঁ না। আপত্তি এবং অপ্টিমাইজেশন একসাথে না, দুঃখিত।
নিকক নিউম্যান

2
আজ জেএসক্রাম্বলারের ওয়েবসাইটে এবং আরও দামের পরিকল্পনাগুলি দেখে আমি কোনও নিখরচায় বিকল্প দেখতে পাচ্ছি না। কেবল একটি নিখরচায় বিচার ..
কেডিটি

18

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

সুতরাং, যদি আপনি কর্মক্ষমতা ত্যাগ করতে না চান তবে আপনি কেবল পরিবর্তনশীল এবং ফাংশন নামের উপর কাজ করতে পারেন, যেমন। এগুলিকে একটি, বি ... আ, আব ... বা এ 101, এ 102 ইত্যাদি দিয়ে প্রতিস্থাপন করুন এবং অবশ্যই আপনার যথাসাধ্য স্থান / নিউলাইনগুলি সরিয়ে ফেলুন (এটিই বলা হয় জেএস কমপ্রেসারগুলি করে)।
স্ট্রিংগুলি অবলম্বন করে একটি পারফরম্যান্স হিট করতে হবে, যদি আপনাকে সেগুলি এনক্রিপ্ট করতে হয় এবং তাদের রিয়েল টাইমে ডিক্রিপ্ট করতে হয়। প্লাস একটি জেএস ডিবাগার চূড়ান্ত মানগুলি দেখাতে পারে ...


17

ওয়াইইউআই কমপ্রেসারের বিপরীতে আমি প্রস্তাবিত অন্যান্য উত্তরগুলির বিপরীতে; আপনার গুগল বন্ধ ব্যবহার করা উচিত ।

এটি বেশি সংকোচনের কারণে খুব বেশি নয়, তবে এটি জাভাস্ক্রিপ্টের ত্রুটি যেমন ধরবে a = [1,2,3,];যা আইই হাইওয়াইরে যায় mostly


5
ত্রুটিগুলির বিপরীতে আপনার কোডটি যাচাই করা উচিত নয় এবং বেমানান হওয়ার আগে কোনওভাবেই অসম্পূর্ণতা করা উচিত ?? আসলে
অবলম্বন

13

একটি অ-উন্মুক্ত উত্স জাভাস্ক্রিপ্ট-ভিত্তিক অ্যাপ্লিকেশন মোটামুটি মূর্খ। জাভাস্ক্রিপ্ট হ'ল একটি ক্লায়েন্টের পক্ষ থেকে ব্যাখ্যা করা ভাষা .. অব্যবস্থাপনা খুব বেশি সুরক্ষা নয় ..

জেএস অস্পষ্টকরণ সাধারণত স্ক্রিপ্টটির আকার হ্রাস করার জন্য এটি "সুরক্ষা" না করে করা হয়। আপনি যদি এমন কোনও পরিস্থিতিতে থাকেন যেখানে আপনি চান না যে আপনার কোডটি সর্বজনীন হোক, জাভাস্ক্রিপ্টটি সঠিক ভাষা নয় ..

আশেপাশে প্রচুর সরঞ্জাম রয়েছে তবে বেশিরভাগের কাছে একটি কারণের জন্য "সংক্ষেপক" (বা "মিনিফায়ার") শব্দটি রয়েছে ..


11

আপনি ক্লায়েন্টের সাইড কোডটি সুরক্ষিত করতে পারবেন না: গুগল ক্রোমে কেবল এফ 12 টিপুন, জাভাস্ক্রিপ্ট এক্সিকিউশনটি বিরতি দিন এবং আপনি সমস্ত স্ট্রিং পাবেন এমনকি এনক্রিপ্ট করাও। এটি সুন্দর করুন এবং ভেরিয়েবলগুলির নাম পরিবর্তন করুন এবং আপনি প্রায় আসল কোড পাবেন।

আপনি যদি সার্ভারের পাশের জাভাস্ক্রিপ্ট লিখছেন (যেমন নোডজেএস) আপনার সার্ভারে কেউ হ্যাক করার ভয় পেয়েছে এবং হ্যাকারটিকে আরও কঠিন করে তুলতে চায়, আপনার অ্যাক্সেস ফিরে পেতে আরও সময় দেয়, তবে জাভাক্রিপ সংকলকগুলি ব্যবহার করুন :

আপনাকে উন্নত সংকলনে ক্লোজার সংকলকটি ব্যবহার করতে হবে, কারণ এটি একমাত্র সরঞ্জাম যা আপনার সমস্ত ভেরিয়েবলগুলির নাম পরিবর্তন করে, এমনকি সেগুলি একাধিক ফাইল / মডিউলগুলিতে ব্যবহৃত হয়। তবে এটিতে কেবল একটি সমস্যা রয়েছে: আপনি কোডিং শৈলীতে লিখলে এটি কেবল কাজ করে ।


সমাপ্তি সংকলন কোডটি অবলম্বন করে না: পি
নাইক নিউম্যান

1
এটি এর জন্য তৈরি করা হয়নি, তবে এটি ভালভাবে কাজ করে: এটি কিছু সংকলকগুলির মতো অতিরিক্ত কোড যুক্ত করে না (যা সাধারণত আমি উল্লিখিত সরঞ্জামগুলির সাথে উল্টে যেতে পারি) তবে এটি অস্বাভাবিক উপায়ে পরিবর্তন করে, কিছুটিকে পূর্বাবস্থায় ফেলা শক্ত, এবং অব্যবহৃত অপসারণ কোড, যা আসল আপত্তি তুলনায় তুলনায় কর্মক্ষমতা জন্য ভাল।
গুস্তাভো রডরিগস

1
ভালো বুদ্ধি নই. মিনি সার্ফিং-কোড সংকলন মাইনিফায়ারে যদি বাগ থাকে তবে সিকিউরিটি সমস্যাগুলি উপস্থাপন করতে পারে: zyan.scriptts.mit.edu/blog/backdooring-js
এমজিওল

আপনি যে বাগটি উল্লেখ করেছেন সেটি কেবল উগলিফজেজেএস-এর জন্য প্রযোজ্য: এটি ক্লোজার কম্পাইলারের ক্ষেত্রে প্রযোজ্য নয়।
গুস্তাভো রডরিগস

যারা জাভাস্ক্রিপ্ট ফাইলগুলি মিনিফাইং করার বিষয়ে চিন্তা করেন তাদের জন্য একটি জাভাস্ক্রিপ্ট আন-মিনিফায়ারও রয়েছে। সুতরাং আমি মনে করি না যে
এগুলি

11

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

বনাম ক্ষুদ্রকরণের বিষয়ে অবহেলা করা - আমি প্রাক্তনের খুব বড় ভক্ত নই। এটি ডিবাগিংকে অসম্ভব করে তোলে (লাইন 1 এ ত্রুটি ... "অপেক্ষা করুন, কেবলমাত্র একটি লাইন রয়েছে") এবং তারা আনপ্যাক করতে সর্বদা সময় নেয়। তবে আপনার যদি দরকার হয় ... ভাল


1
তবে অবিচ্ছিন্নভাবে এটিকে একটি লাইনে সংকুচিত করে না, এটি ফাংশন এবং ভেরিয়েবলের নাম পরিবর্তন করতে বা স্ট্রিংগুলিকে বেস 64 এ রূপান্তর করার মতো সহজ হতে পারে। মিনিফাইং সমস্ত কোড এক লাইনে রাখে।
rw-nandemo

আজকাল UglifJS সেরা পছন্দ বলে মনে হচ্ছে। লেখকও দুর্দান্ত মানুষ! :)
সোভেটোমির সোনেভ

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

5

আমি প্রথমে YUI কমপ্রেসারের মতো কিছু দিয়ে মিনিফাই করার পরামর্শ দেব এবং তারপরে http://www.javascripttobfuscator.com/ এর মতো কিছু ব্যবহার করে সমস্ত স্ট্রিং এবং নম্বরগুলি HEX মানগুলিতে রূপান্তর করব

এটির সাহায্যে কোডটি বোঝা অসম্ভবের কাছাকাছি হয়ে গেছে এবং আমি মনে করি এই পর্যায়ে হ্যাকার আপনার স্ক্র্যাচ থেকে পুনরায় লেখার চেয়ে আসলে আপনার কোডটি পুনরায় কার্যকর করতে আরও সময় লাগবে time রাইটিং এবং ক্লোনিং হ'ল আপনি যা থামাতে পারেন তা আসলে। সর্বোপরি আমরা মুক্ত-মানুষ!


5

ডিন এডওয়ার্ডের প্যাকার হ'ল একটি দুর্দান্ত অভয়দর্শক, যদিও এটি প্রাথমিকভাবে কোডটিকে ঘৃণা করে, আপনার কোডের মধ্যে থাকা কোনও স্ট্রিং উপাদান নয়।

দেখুন: অনলাইন জাভাস্ক্রিপ্ট সংক্ষেপণ সরঞ্জাম এবং ড্রপডাউন থেকে প্যাকার (ডিন এডওয়ার্ডস) নির্বাচন করুন


ইহা অর্থহীন. এটা দিয়ে খুব সহজেই প্যাক না করা যায় jsbeautifier.org
Maciej Krawczyk

4

আমি এই ছাপের মধ্যে রয়েছি যে কিছু উদ্যোগ (যেমন: জ্যাকবি) অপ্রয়োজনীয় অতিরিক্ত পরিমাপ হিসাবে জেএস ফাইলের পরিবর্তে * .gif ফাইলের ভিতরে এনক্রিপ্ট করা জাভাস্ক্রিপ্ট কোড রাখে।


4

এই সরঞ্জামটি জাভাস্ক্রিপ্ট অবফসেক্টর ব্যবহার করে দেখুন

আমি এটি আমার এইচটিএমএল 5 গেমটিতে ব্যবহার করেছি এটির আকারটি 950KB থেকে হ্রাস করে 150 না করে সোর্স কোডটি অপঠনযোগ্য ক্লোজার সংকলক এবং মিনিফায়ারগুলি বিপর্যয়কর করে তুলেছে আমি ব্যক্তিগতভাবে কীভাবে এই অনর্থক বিপরীত করতে হয় তা জানি না।


4

আমি জসোবকে বছরের পর বছর ধরে ব্যবহার করছি এবং এটি সর্বোত্তম উত্সাহীকারীর হাত ধরে আছে।
এটির একটি উন্নত UI রয়েছে তবে এটি এখনও স্বজ্ঞাত এবং ব্যবহারযোগ্য।
এটি এইচটিএমএল এবং সিএসএস ফাইলগুলিও পরিচালনা করবে।

এটির ব্যবহারের সর্বোত্তম উপায় হ'ল আপনার সমস্ত ব্যক্তিগত ভেরিয়েবলকে আন্ডারস্কোরের মতো কিছু দিয়ে উপসর্গ করা , তারপরে sortবৈশিষ্ট্যটি ব্যবহার করে সেগুলি একসাথে গোষ্ঠীভুক্ত করা এবং অবক্ষেপণের লক্ষ্য হিসাবে এগুলি পরীক্ষা করা

ব্যবহারকারী এখনো আপনার সোর্স দেখতে পারেন, কিন্তু যখন আপনার ব্যক্তিগত ভেরিয়েবল ভালো কিছু থেকে রূপান্তরিত হয় তাহলে সেটিকে পাঠোদ্ধার আরো অনেক কিছু কঠিন _sUserPreferredNickNameথেকে a

ইঞ্জিনটি স্বয়ংক্রিয়ভাবে লক্ষ্যবস্তু ভেরিয়েবলের সংখ্যার তুলনা করবে এবং সর্বাধিক সংকোচনের জন্য তাদের অগ্রাধিকার দেবে।

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


জেসন একজন অবফসকেটারের তুলনায় একটি মিনিফায়ার হিসাবে বেশি প্রদর্শিত হবে। আমি কিছু অনুপস্থিত করছি?
অ্যালান ম্যাকবি - এমএসএফটি

4

আপনি কলাস্ক্রিপ্ট চেষ্টা করেছেন ? এটি অত্যন্ত সঙ্কুচিত এবং সম্পূর্ণ অপঠনযোগ্য কোড উত্পাদন করে।


18
এটি কোডটি দুর্দান্তভাবে সংকুচিত করে, তবে কেবল eval()শেষ লাইনে পরিবর্তন করুন console.log()এবং আপনার কনসোলটি পুরো জিনিসটি
ছড়িয়ে দেবে

4

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

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

শীঘ্রই আমি উগলিফজেজেএসকে সুযোগ দেব।



3

এটি একটি হ্রাস করে কিন্তু অচল করে না। আপনি যদি কমান্ড লাইন জাভা ব্যবহার করতে না চান তবে আপনি নিজের জাভাস্ক্রিপ্ট একটি ওয়েবফর্মে পেস্ট করতে পারেন।


1
দ্রষ্টব্য: লিঙ্কটি এখন মারা গেছে।
স্কট সি উইলসন

1
@ স্কটউইলসন ধন্যবাদ জানিয়েছিলেন, এটি আপডেট করেছেন
ক্রিস এস

2

আপনার অবশ্যই স্পষ্টতই অবফুসস্ক্রিপ্টর দিকে নজর দেওয়া উচিত

আমি সাধারণত জাভাস্ক্রিপ্ট minifying ঠাট আমরা এই ধরনের অন্যান্য সরঞ্জাম থেকে দেখা করেছি ছাড়াইয়া যায় Yui কম্প্রেসার বা গুগল বন্ধ

অবরুদ্ধ কোডটি আরও এনক্রিপ্টের মতো দেখাচ্ছে। আমি এর আগে যা দেখেছি তার বিপরীতে।


লিঙ্কের জন্য ধন্যবাদ! প্রকৃতপক্ষে কেবলমাত্র অবিস্ক্রিপ্টর এবং কোড এনক্রিপ্ট করা হয়েছে (কোনও কী নেই ???)। এবং আমার স্ক্রিপ্টটি 211 থেকে 36 কেবি পর্যন্ত সংকুচিত করেছে!

নোট করুন যে ওফুস্প্রিপ্টর আপনাকে সতর্ক করে দেয় যে এটি আইইয়ের সাথে কাজ করে না। এটি কারও কারও জন্য চুক্তিভঙ্গকারী।
অ্যালান ম্যাকবি - এমএসএফটি

1
উত্তরের লিঙ্কটি আর সরঞ্জামটির দিকে নির্দেশ করে না। আমি এর সাথে আর কোনও লাইভ রেফারেন্স পাই না।
বুজোবার্ট

প্রথম লিঙ্কটি মারা গেছে। "অববস্ক্রিপ্টর"
অ্যালপ

2

আপনি যদি জাভাস্ক্রিপ্ট লাইব্রেরি ব্যবহার করেন তবে ডোজো টুলকিট বিবেচনা করুন যা বন্ধ সংকলকের উন্নত মোড সংকলনের সাথে সামঞ্জস্যপূর্ণ (ছোটখাট পরিবর্তনের পরে)।

দোজো - একমাত্র জাভাস্ক্রিপ্ট লাইব্রেরি ক্লোজার কম্পাইলারের সাথে সামঞ্জস্যপূর্ণ

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

নিখুঁতভাবে সংশোধিত জাভা স্ক্রিপ্ট কোড (ওয়াইউআই কমপ্রেসর, উগ্লিফাই ইত্যাদি) বিউটিফায়ারের মধ্য দিয়ে যাওয়ার পরে রিভার্স ইঞ্জিনিয়ার করা সহজ।


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