当通过浏览器的“查看源代码”功能查看源代码时,是否可以从网页的 html 中隐藏 Javascript 代码?
我知道可以混淆代码,但我更希望它从查看源功能中隐藏起来。
当通过浏览器的“查看源代码”功能查看源代码时,是否可以从网页的 html 中隐藏 Javascript 代码?
我知道可以混淆代码,但我更希望它从查看源功能中隐藏起来。
我不确定其他人是否真的直接解决了您的问题,即从浏览器的“查看源代码”命令查看的代码。
正如其他人所说,没有办法保护打算在浏览器中运行的 javascript 免受确定的查看器的影响。如果浏览器可以运行它,那么任何有决心的人也可以查看/运行它。
但是,如果您将 javascript 放在包含以下内容的外部 javascript 文件中:
<script type="text/javascript" src="http://mydomain.com/xxxx.js"></script>
标签,那么 javascript 代码将不会立即通过查看源命令可见 - 只有脚本标签本身才会以这种方式可见。这并不意味着有人不能只加载该外部 javascript 文件来查看它,但您确实询问了如何将其排除在浏览器的“查看源代码”命令之外,而这会做到。
如果您想真正使查看源代码更加有效,您可以执行以下所有操作:
尽管如此,我认为您应该专注于性能、可靠性和让您的应用程序出色。如果你绝对需要保护一些算法,把它放在服务器上,但除此之外,竞争是你最擅长的,而不是通过拥有秘密。无论如何,这就是成功在网络上的最终运作方式。
不,这不可能。
如果你不把它交给浏览器,那么浏览器就没有它。
如果你这样做了,那么它(或一个容易遵循的对它的引用)构成源的一部分。
我的解决方案的灵感来自最后一条评论。这是invisible.html的代码
<script src="http://code.jquery.com/jquery-1.8.2.js"></script>
<script type="text/javascript" src="invisible_debut.js" ></script>
<body>
</body>
invisible_debut.js 的清晰代码是:
$(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();});
请注意,最后我将删除创建的脚本。invisible.js 是:
$(document).ready(function(){
alert('try to find in the source the js script which did this alert!');
document.write('It disappeared, my dear!');});
invisible.js 没有出现在控制台中,因为它已被删除并且从未出现在源代码中,因为它是由 javascript 创建的。
关于invisible_debut.js,我进行了混淆处理,也就是说查找invisible.js的url非常复杂。不完美,但对于普通黑客来说已经够难了。
使用 Html Encrypter Head 的部分
<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 注意:如果您的页面中有 java 脚本,请尝试导出到 .js 文件并使其像上面的示例一样。
而且这个加密器并不总是在一些代码中工作,这会使你的网站一团糟......选择你想隐藏的最好的部分,例如 <form> </form>
这可以由高级用户逆转,但并非所有像我这样的菜鸟都知道。
希望这会有所帮助
'不可能!'
哦,是的,它是......
//------------------------------
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]);
}
}
}