我在我的文件中使用了一些javascripts。但是当我们查看源代码时,它会显示我们的javascript。有什么方法可以隐藏我们的JavaScript使用php在浏览器中显示。
答案 0 :(得分:6)
javascriptobfuscator.com有一个免费的javascript混淆器。它不会阻止专门的人“窃取”您的代码,但正常的复制和粘贴并不容易。
另见这个问题:How can I obfuscate (protect) JavaScript?。它包含一些非常好的答案,并通过默默无闻来解释这是如何安全的。
答案 1 :(得分:5)
这就是它的工作原理,每个人都可以看到。 但是你可以对它进行模糊处理。
答案 2 :(得分:3)
由于Javascript在浏览器内部执行,在客户端的计算机上,必须将其发送到该客户端计算机。
所以,无论如何,客户必须能够阅读它。所以,不,你不能阻止你的用户看到JS代码。
你可以obfuscate它,但是真正想要找到你的来源的人总是能够(如果很难发生事件)......但问题是:为什么你会阻止你的用户看到JS源代码,如果他们想要?
作为旁注:使用缩小/混淆的JS代码,当你遇到错误时,追踪真的很难......(你真的必须保持不 - 开发/测试机器上的混淆版本)
答案 3 :(得分:2)
我建议缩小它,这将删除代码中的注释和空格。如果您不希望变量名称可见,那么您需要对其进行模糊处理。
答案 4 :(得分:1)
我不确定这是否有效,我可以尝试一下。但基本上是:
<script type="text/javascript" src="MyScript.php"></script>
在PHP文件中添加某种引用以检查请求它的页面或最后一页是什么。然后,如果它是你自己的一个页面,那么回显JS,如果没有,那么不回应它。它仍然可以读取JS,但更难以查看源代码并对其进行去混淆。所以你也可以混淆.php文件中的代码。
答案 5 :(得分:0)
没有。 javascript在客户端执行。
答案 6 :(得分:-2)
还有另一种方法可以为最简单的用户隐藏Javascript
只需test here to try finding the javascript behind the textbox ...
然而,有经验的用户仍然可以看到该脚本 - 请参阅此帖子的底部以了解原因 -
想法是将您的javascript函数放在单独的“.js”文件中。加载源PHP或HTML页面时,而不是直接使用
调用它<SCRIPT language="JavaScript" SRC="original_file_to_hide.js"></SCRIPT>
,你将包含一个标题php脚本,它将“mysource.js”文件复制到随机的“kcdslqkjfldsqkj.js”文件中,并修改你的HTML文件以便调用
<SCRIPT language="JavaScript" SRC="temporary_copy_of_the_file.js"></SCRIPT>
代替。之后,只需删除服务器上的副本kcdslqkjfldsqkj.js文件,当用户查找源代码时,浏览器将链接到一个消失的文件!!!
所以这是理论,接下来,有一个小问题解决方法:如果HTML / PHP文件加载太快,你的脚本将在浏览器出现之前从你的服务器中消失加载脚本的时间。
因此,你需要
以下是HTML / PHP“ test.php ”页面的来源,该页面将显示给最终用户:
<?php
//javascript source code hiding technique : Philippe PUECH, 2013
//function thanks to Stackoverflow, slightly modified
//http://stackoverflow.com/questions/4356289/php-random-string-generator
function RandomString()
{
$characters = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$randstring = '';
for ($i = 0; $i < 10; $i++)
{
$randstring = $randstring.$characters[rand(0, strlen($characters))];
}
return $randstring;
}
//simple header script to create a copy of your "precious" javascript ".js" file
$original_filename="functions.js"; //find a better (complicated) name for your file
$hidden_filename=RandomString().".js"; //temporary filename
copy($original_filename,$hidden_filename);
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Catch my Javascript if you can !</title>
</head>
<SCRIPT language="JavaScript" SRC="<?php echo($hidden_filename); ?>"></SCRIPT>
<script type="text/javascript">
</script>
<body onLoad="javascript:testfunc();">
This is the page with anything you like !
</body>
</html>
<?php
sleep(1);
//you can comment following line
echo "finished !";
unlink($hidden_filename);
?>
以下是“ functions.js ”文件的来源,该文件将隐藏给用户。
// JavaScript Document
function testfunc(){
alert("It works...");
}
然而,正如评论中所说,浏览器的开发人员工具会将脚本保留在内存中,并使其对于好奇的用户仍然可见......; - ((