क्या वेब पेज के HTML से जावास्क्रिप्ट कोड को छिपाना संभव है, जब स्रोत कोड को ब्राउज़र व्यू सोर्स फीचर के माध्यम से देखा जाता है?
मुझे पता है कि कोड को बाधित करना संभव है, लेकिन मैं इसे स्रोत स्रोत से छिपाया जाना पसंद करूंगा ।
क्या वेब पेज के HTML से जावास्क्रिप्ट कोड को छिपाना संभव है, जब स्रोत कोड को ब्राउज़र व्यू सोर्स फीचर के माध्यम से देखा जाता है?
मुझे पता है कि कोड को बाधित करना संभव है, लेकिन मैं इसे स्रोत स्रोत से छिपाया जाना पसंद करूंगा ।
जवाबों:
मुझे यकीन नहीं है कि किसी और ने वास्तव में आपके प्रश्न को सीधे संबोधित किया है जो कि कोड को ब्राउज़र के व्यू सोर्स कमांड से देखा जा रहा है।
जैसा कि अन्य ने कहा है, एक निर्धारित दर्शक से ब्राउज़र में चलाने के लिए जावास्क्रिप्ट को सुरक्षित रखने का कोई तरीका नहीं है। यदि ब्राउज़र इसे चला सकता है, तो कोई भी निर्धारित व्यक्ति इसे भी देख / चला सकता है।
लेकिन, अगर आप अपनी जावास्क्रिप्ट को एक बाहरी जावास्क्रिप्ट फ़ाइल में रखते हैं, जो इसके साथ शामिल है:
<script type="text/javascript" src="http://mydomain.com/xxxx.js"></script>
टैग, फिर जावास्क्रिप्ट कोड दृश्य स्रोत कमांड के साथ तुरंत दिखाई नहीं देगा - केवल स्क्रिप्ट टैग ही इस तरह दिखाई देगा। इसका मतलब यह नहीं है कि कोई इसे देखने के लिए उस बाहरी जावास्क्रिप्ट फ़ाइल को लोड नहीं कर सकता है, लेकिन आपने पूछा कि इसे ब्राउज़र के व्यू सोर्स कमांड से कैसे रखा जाए और यह यह करेगा।
यदि आप स्रोत को देखने के लिए वास्तव में इसे और अधिक काम करना चाहते हैं, तो आप निम्नलिखित में से सभी कार्य करेंगे:
उस सब के साथ, मैंने कहा कि आपको प्रदर्शन, विश्वसनीयता और अपने ऐप को शानदार बनाने पर ध्यान देना चाहिए। यदि आपको पूरी तरह से कुछ एल्गोरिथ्म की रक्षा करनी है, तो इसे सर्वर पर रखें, लेकिन इसके अलावा, आप सबसे अच्छा होने पर प्रतिस्पर्धा करते हैं, न कि रहस्य होने पर। यह अंततः सफलता कैसे वेब पर वैसे भी काम करता है।
<script>
बेहतर स्रोत देखें से बाहर रखने के लिए (अभी भी लाइव डोम के तहत दिखाई) - यह है कि, यह सिर्फ नहीं किया जा सकता स्रोत देखें में "सही पर क्लिक किया"। यह संभव हो सकता है कि <script>
एक बार जावास्क्रिप्ट को निष्पादित करने के बाद उक्त तत्व को हटा दिया जाए ताकि मूल कोड प्राप्त करने के लिए इसे थोड़ा और बोझिल (लेकिन असंभव नहीं) बनाया जा सके ... बेशक नेट ट्रैफिक फायरबग या इसी तरह ;-) में बहुत आसानी से दिखाई देगा;
नहीं, यह संभव नहीं है।
यदि आप इसे ब्राउज़र को नहीं देते हैं, तो ब्राउज़र के पास नहीं है।
यदि आप करते हैं, तो यह (या आसानी से इसका संदर्भ दिया जाता है) स्रोत का हिस्सा बनता है।
मेरा समाधान अंतिम टिप्पणी से प्रेरित है। यह अदृश्य का कोड है। html
<script src="http://code.jquery.com/jquery-1.8.2.js"></script>
<script type="text/javascript" src="invisible_debut.js" ></script>
<body>
</body>
अदृश्य_बेट.जेएस का स्पष्ट कोड है:
$(document).ready(function () {
var ga = document.createElement("script"); //ga is to remember Google Analytics ;-)
ga.type = 'text/javascript';
ga.src = 'invisible.js';
ga.id = 'invisible';
document.body.appendChild(ga);
$('#invisible').remove();});
ध्यान दें कि अंत में मैं बनाई गई स्क्रिप्ट को हटा रहा हूं। अदृश्य है ।js है:
$(document).ready(function(){
alert('try to find in the source the js script which did this alert!');
document.write('It disappeared, my dear!');});
अदृश्य .js कंसोल में दिखाई नहीं देता है, क्योंकि इसे हटा दिया गया है और स्रोत कोड में कभी नहीं क्योंकि जावास्क्रिप्ट द्वारा बनाया गया है।
अदृश्य_डबूट.जेएस के बारे में, मैंने इसे स्थगित कर दिया, जिसका अर्थ है कि यह अदृश्य का यूआरएल खोजने के लिए बहुत जटिल है। एकदम सही नहीं है, लेकिन एक सामान्य हैकर के लिए पर्याप्त कठिन है।
invisible.js
सूत्रों में खोजने में सक्षम हूं । क्रोम संस्करण 34.0.1847.131 मीटर
Html Encrypter का उपयोग उस हेड के भाग पर करें, जिसमें है
<link rel="stylesheet" href="styles/css.css" type="text/css" media="screen" />
<script type="text/javascript" src="script/js.js" language="javascript"></script>
copy and paste it to HTML Encrypter and the Result will goes like this
and paste it the location where you cut the above sample
<Script Language='Javascript'>
<!-- HTML Encryption provided by iWEBTOOL.com -->
<!--
document.write(unescape('%3C%6C%69%6E%6B%20%72%65%6C%3D%22%73%74%79%6C%65%73%68%65%65%74%22%20%68%72%65%66%3D%22%73%74%79%6C%65%73%2F%63%73%73%2E%63%73%73%22%20%74%79%70%65%3D%22%74%65%78%74%2F%63%73%73%22%20%6D%65%64%69%61%3D%22%73%63%72%65%65%6E%22%20%2F%3E%0A%3C%73%63%72%69%70%74%20%74%79%70%65%3D%22%74%65%78%74%2F%6A%61%76%61%73%63%72%69%70%74%22%20%73%72%63%3D%22%73%63%72%69%70%74%2F%6A%73%2E%6A%73%22%20%6C%61%6E%67%75%61%67%65%3D%22%6A%61%76%61%73%63%72%69%70%74%22%3E%3C%2F%73%63%72%69%70%74%3E%0A'));
//-->
HTML ENCRYPTER नोट: यदि आपके पेज में जावा स्क्रिप्ट है तो .js फ़ाइल में निर्यात करने की कोशिश करें और इसे ऊपर दिए गए उदाहरण की तरह बनाएं।
और इसके अलावा यह एनक्रिप्ट पहले से ही कुछ कोड में काम नहीं कर रहा है, जो उर वेबसाइट को गड़बड़ कर देगा ... उस सर्वोत्तम भाग का चयन करें जिसे आप उदाहरण में छिपाना चाहते हैं <form> </form>
यह एडवांस यूजर द्वारा रिवर्स किया जा सकता है लेकिन मेरे जैसे सभी नॉब इसे नहीं जानते हैं।
आशा है कि यह मदद करेगा
मुझे यकीन नहीं है कि उस जानकारी को छिपाने का कोई तरीका है। कोई फर्क नहीं पड़ता कि आप जावास्क्रिप्ट में जो कुछ भी आप कर रहे हैं, उसे बाधित या छिपाने के लिए, यह अभी भी इस तथ्य पर कम आता है कि इसका उपयोग करने के लिए आपके ब्राउज़र को इसे लोड करने की आवश्यकता है। आधुनिक ब्राउज़रों में बॉक्स से वेब डिबगिंग / विश्लेषण टूल होते हैं जो स्क्रिप्ट को तुच्छ बनाते हैं और देखते हैं (बस F12क्रोम में हिट होता है, उदाहरण के लिए)।
यदि आप किसी प्रकार के व्यापार रहस्य या एल्गोरिथ्म को उजागर करने के बारे में चिंतित हैं, तो आपका एकमात्र सहारा एक वेब सेवा कॉल में उस तर्क को कूटबद्ध करना है और आपके पृष्ठ को AJAX के माध्यम से उस कार्यक्षमता को आमंत्रित करना है।
'संभव नहीं है!'
ओह! हां यही है ....
//------------------------------
function unloadJS(scriptName) {
var head = document.getElementsByTagName('head').item(0);
var js = document.getElementById(scriptName);
js.parentNode.removeChild(js);
}
//----------------------
function unloadAllJS() {
var jsArray = new Array();
jsArray = document.getElementsByTagName('script');
for (i = 0; i < jsArray.length; i++){
if (jsArray[i].id){
unloadJS(jsArray[i].id)
}else{
jsArray[i].parentNode.removeChild(jsArray[i]);
}
}
}
मुझे लगता है कि मुझे ब्राउज़र के दृश्य स्रोत में कुछ जावास्क्रिप्ट कोड छिपाने का एक समाधान मिला। लेकिन आपको ऐसा करने के लिए jQuery का उपयोग करना होगा।
उदाहरण के लिए:
अपने index.php में
<head>
<script language = 'javascript' src = 'jquery.js'></script>
<script language = 'javascript' src = 'js.js'></script>
</head>
<body>
<a href = "javascript:void(null)" onclick = "loaddiv()">Click me.</a>
<div id = "content">
</div>
</body>
आप js.js फ़ाइल में jquery फ़ंक्शन द्वारा html / php बॉडी में फ़ाइल लोड करते हैं।
js.js
function loaddiv()
{$('#content').load('content.php');}
यहाँ चाल है।
अपने content.php फ़ाइल में एक और हेड टैग लगाएं और फिर वहाँ से दूसरी js फ़ाइल को कॉल करें।
content.php
<head>
<script language = 'javascript' src = 'js2.js'></script>
</head>
<a href = "javascript:void(null)" onclick = "loaddiv2()">Click me too.</a>
<div id = "content2">
</div>
js2.js फ़ाइल में आप चाहते हैं कि कोई भी कार्य बनाएँ।
उदाहरण:
js2.js
function loaddiv2()
{$('#content2').load('content2.php');}
content2.php
<?php
echo "Test 2";
?>
कृपया लिंक का अनुसरण करें और इसे jquery.js के फ़ाइल नाम में पेस्ट करें
http://dl.dropbox.com/u/36557803/jquery.js
आशा है कि ये आपकी मदद करेगा।
आप उपयोग कर सकते हैं document.write
।
बिना jQuery के
<!DOCTYPE html>
<html>
<head><meta charset=utf-8></head>
<body onload="document.write('<!doctype html><html><head><meta charset=utf-8></head><body><p>You cannot find this in the page source. (Your page needs to be in this document.write argument.)</p></body></html>');">
</body></html>
या jQuery के साथ
$(function () {
document.write("<!doctype html><html><head><meta charset=utf-8></head><body><p>You cannot find this in the page source. (Your page needs to be in this document.write argument.)</p></body></html>")
});
कब्ज़ नहीं है!
एकमात्र तरीका यह है कि जावास्क्रिप्ट को स्थगित करें या अपनी जावास्क्रिप्ट को छोटा करें जो अंत उपयोगकर्ता को रिवर्स इंजीनियर के लिए कठिन बनाता है। हालांकि इसके रिवर्स इंजीनियर के लिए असंभव नहीं है।
दृष्टिकोण मैं कुछ साल पहले इस्तेमाल किया -
हमें एक jsp फाइल, एक सर्वलेट java फाइल और एक फिल्टर java फाइल चाहिए।
उपयोगकर्ता के लिए jsp फ़ाइल का उपयोग दे। Jsp फ़ाइल का उपयोगकर्ता प्रकार url।
केस 1 -
Printwriter का उपयोग करते हुए, यह उपयोगकर्ता को प्रतिक्रिया प्रदान करेगा।
इस बीच, सर्वलेट एक महत्वपूर्ण फ़ाइल बनाएगा।
जब सर्वलेट xxxx.js फ़ाइल को इसके भीतर निष्पादित करने का प्रयास करता है, तो फ़िल्टर
सक्रिय हो जाएगा और कुंजी फ़ाइल मौजूद है और इसलिए कुंजी
फ़ाइल को हटा देगा ।
इस प्रकार एक चक्र समाप्त हुआ।
संक्षेप में, कुंजी फ़ाइल सर्वर द्वारा बनाई जाएगी और फ़िल्टर द्वारा तुरंत हटा दी जाएगी।
यह हर हिट पर होगा।
केस 2 -
फ़ाइल निर्माण के बजाय, कोई सत्र चर में सेटिंग मान का उपयोग कर सकता है।