Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
阻止对JavaScript文件的访问_Javascript_.htaccess - Fatal编程技术网

阻止对JavaScript文件的访问

阻止对JavaScript文件的访问,javascript,.htaccess,Javascript,.htaccess,假设我有一个JavaScript文件。。。使用.htaccess是否有一种方法可以让用户无法查看JavaScript文件?否。您可以混淆它或将JavaScript隐藏在另一个容器中(如页面中的内联),但不能阻止他们查看它 如果您使用htaccess文件阻止它,那么浏览器将无法下载并使用它,这使得拥有javascript文件毫无意义。一旦通过浏览器下载,它就位于本地机器上的缓存中,因此有决心/有知识的人可以找到它并检查它。如果您混淆了它,用户将很难理解它,因此这可能是最好的选择。您可以使用检查Ba

假设我有一个JavaScript文件。。。使用.htaccess是否有一种方法可以让用户无法查看JavaScript文件?

否。您可以混淆它或将JavaScript隐藏在另一个容器中(如页面中的内联),但不能阻止他们查看它

如果您使用htaccess文件阻止它,那么浏览器将无法下载并使用它,这使得拥有javascript文件毫无意义。一旦通过浏览器下载,它就位于本地机器上的缓存中,因此有决心/有知识的人可以找到它并检查它。如果您混淆了它,用户将很难理解它,因此这可能是最好的选择。

您可以使用
检查
Base62编码
收缩变量
框,使JS代码难以阅读。

然后就是Yahoo压缩器:
谷歌压缩机:

第一个是在线的,最后两个需要在您的机器上安装


但是。。。由于浏览器需要理解它接收到的javascript,患者和决策者将能够对其进行反向工程。但是上面的压缩器会让很多人望而却步。

让javascript或多或少“难以”阅读的唯一方法是压缩和混淆它

以下是一些解决方案:


    • 这真是一个毫无意义的练习。如果有人可以在你的网站上运行你的Javascript,他可以在任何他喜欢的地方运行它,并进行任何他想要的更改。这在网络历史上并没有被证明是一个很大的问题,所以我不会在上面浪费太多时间

      如果真的担心有人会“窃取”你的Javascript,那么版权是你最好的武器。如果某个算法是秘密的,则在服务器上进行处理并仅提供结果

      RewriteEngine on
      RewriteCond %{HTTP_REFERER} !http://your-domain\.com/.* [NC]
      RewriteRule ^.*js$ - [F]
      
      当referer位于所有JavaScript文件的域之外时,将返回403代码(禁止)


      注意:但此解决方案只会使访问文件变得更困难。如果有人想查看文件,他最终会这样做。因为你不能完全阻止js文件,如果浏览器可以读取,用户也会。示例:您只能打开开发工具,您将看到源代码。或者,如果有人发现该块是由referer创建的,他可以创建指向文件的链接,或者使用其他方式将头添加到请求中。

      您无法真正保护您的Javascript文件。


      在Google Chrome上使用开发者工具:

      点击资源>站点>脚本>文件名.js


      它将在那里显示得非常清晰。

      模糊它有多好。。。就像我不想让他们读Javasript文件一样。。。但如果都是垃圾。。这会有用的。你为什么不想让他们能读呢?这个javascript文件执行哪些需要隐藏的功能?我的意思是,任何人都可以撤销我对代码的阻塞吗?是的,当然,如果他们愿意花足够的时间。因此,如果您的算法非常好,您不想与任何人共享它们,请将它们保留在服务器上,并为它们提供适当的接口。消除非公开代码的混淆可能很有趣。:)也就是说,消除模糊对任何人都是不可能的,只有对某个人。一个PHP包含到一个PHP文件中,里面将包含到Javascript文件中!也!我可以把代码压缩两次。。一次压缩一次,然后将代码转换成另一个@Dan,然后我转到我的浏览器,键入您的第一个PHP页面的url,然后得到js;)别在那上面浪费太多时间。最后,源代码会以javascript的形式出现在浏览器中,你必须接受。我不知道他们是否可以运行javascript,我只是不想让他们知道其中的内容。在我们的web应用程序中,为了提高效率和实现单个http调用,我们将所有内容压缩到一个html页面中。HTML+JS+CSS。这使得页面变成了一个长串,大约300kb,我敢说任何人都会尝试去阅读和理解它。虽然这是可能的。哦,我该怎么做呢?我对服务器端处理很感兴趣:)@Dan:在你的站点上有一个脚本(PHP、Ruby、Java——没关系),你的Javascript用AJAX调用它,提供算法的输入并返回输出。这听起来太复杂了(尽管我知道Java和PHP),哈哈。我同意,使用Google Chrome上的开发者工具,例如:点击Resources>Your Site>Scripts>filename.js,它就会清晰地显示在那里。但是在block by.htaccess之后,我自己的站点就无法加载js文件或访问它了。那么如何解决呢?请告诉我。我也想这样做。任何用户都不会通过浏览器查看或访问我的文件,但我的域会使用我的脚本tag@HarsukhMakwana如果js文件在脚本标签中,referer部分应该让它加载js文件,但在新标签中打开时不会加载,因为它没有referer,要在新标签中打开它,您可以创建一个链接
      ,然后单击它。此外,您还需要放置与存储文件的域相同的域。另外,https http也很重要,如果您在.htacceess中有http,并且您在https上打开页面,它也将不起作用。您能帮助我吗?因为在过去的三天里我一直在尝试这样做。我详细解释了我的问题。我可以在你的聚会上留言吗?harsukh21@gmai.com这是我的身份证。如果你需要帮助,请帮助我can@HarsukhMakwana您可以创建另一个问题,其中包含指向此问题的链接和无效的解决方案。如果您有疑问,更多的人可能会提供帮助。这种方法的问题是,用户仍然可以打开开发人员工具,在“网络”选项卡或“源代码”选项卡中查看那里的源代码。