aru*_*air 83 javascript browser obfuscation hide
当通过浏览器查看源功能查看源代码时,是否可以从网页的html中隐藏Javascript代码?
我知道可以对代码进行模糊处理,但我更希望它从视图源功能中隐藏.
jfr*_*d00 116
我不确定其他人是否直接解决了您的问题,这是从浏览器的View Source命令查看的代码.
正如其他人所说,没有办法保护打算在浏览器中运行的javascript来自确定的查看者.如果浏览器可以运行它,那么任何确定的人也可以查看/运行它.
但是,如果你将你的javascript放在一个外部的javascript文件中,该文件包含在:
<script type="text/javascript" src="http://mydomain.com/xxxx.js"></script>
标签,然后使用"查看源"命令不会立即显示javascript代码 - 只有脚本标记本身才会以这种方式显示.这并不意味着有人不能只是加载外部javascript文件来查看它,但你确实问过如何将它保留在浏览器的View Source命令之外,这样就可以了.
如果您想真正让查看源代码更加有效,您可以执行以下所有操作:
尽管如此,我认为您应该专注于性能,可靠性并使您的应用程序变得更好.如果你绝对必须保护一些算法,把它放在服务器上,但除此之外,竞争你做的最好,而不是有秘密.无论如何,这最终是成功在网络上运作的方式.
Que*_*tin 36
不,这是不可能的.
如果您不将它提供给浏览器,那么浏览器就没有它.
如果你这样做,那么它(或一个容易遵循它的引用)构成了源的一部分.
小智 13
使用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'));
//-->
Run Code Online (Sandbox Code Playgroud)
HTML ENCRYPTER 注意:如果您的页面中有一个java脚本,请尝试导出到.js文件,并使其像上面的示例一样.
此外,这个加密器并不总是在一些代码中工作,这将使你的网站搞砸了...选择你想要隐藏的最好的部分,例如 <form> </form>
这可以通过提前用户反向,但不是像我这样的所有菜鸟都知道它.
希望这会有所帮助
小智 11
我的解决方案受到最后评论的启发.这是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>
Run Code Online (Sandbox Code Playgroud)
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();});
Run Code Online (Sandbox Code Playgroud)
请注意,最后我将删除创建的脚本.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!');});
Run Code Online (Sandbox Code Playgroud)
invisible.js不会出现在控制台中,因为它已被删除,并且从未在源代码中出现,因为它是由javascript创建的.
关于invisible_debut.js,我对它进行了混淆,这意味着找到invisible.js的url非常复杂.不完美,但对普通黑客来说很难.
'不可能!'
哦,是的....
//------------------------------
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]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我不确定是否有办法隐藏这些信息.无论你做什么来混淆或隐藏你在JavaScript中做的任何事情,它仍然归结为你的浏览器需要加载它才能使用它.现代浏览器具有开箱即用的Web调试/分析工具,使得提取和查看脚本变得微不足道(F12例如,只需在Chrome中点击).
如果您担心暴露某种商业秘密或算法,那么您唯一的办法就是将该逻辑封装在Web服务调用中,让您的页面通过AJAX调用该功能.
我想我找到了一种在浏览器的视图源中隐藏某些JavaScript代码的解决方案。但是您必须使用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>
Run Code Online (Sandbox Code Playgroud)
您将文件加载到js.js文件中的jquery函数调用的html / php主体中。
js.js
function loaddiv()
{$('#content').load('content.php');}
Run Code Online (Sandbox Code Playgroud)
这是窍门。
在您的content.php文件中,放置另一个head标签,然后从那里调用另一个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>
Run Code Online (Sandbox Code Playgroud)
在js2.js文件中创建所需的任何函数。
例:
js2.js
function loaddiv2()
{$('#content2').load('content2.php');}
Run Code Online (Sandbox Code Playgroud)
content2.php
<?php
echo "Test 2";
?>
Run Code Online (Sandbox Code Playgroud)
请点击链接,然后将其复制粘贴到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>
Run Code Online (Sandbox Code Playgroud)
或者使用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>")
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
244870 次 |
最近记录: |