如果有人在浏览器中打开了我的.js或.css文件,是否可以显示不同的内容?我将Apache配置为在.js和.css文件中执行PHP代码。如何检测文件是由网页请求还是由用户直接查看?
编辑:我知道没有办法100%隐藏我的文件。我正在寻找阻止人们复制代码的最佳方法。
答案 0 :(得分:7)
在浏览器中运行的网络上的任何内容都不能真正隐藏。浏览器只是请求文件的代理,与任何请求文件用于任何用途的代理相同。服务器在将JS文件作为网页的一部分下载的浏览器与下载JS文件以查看它的用户之间没有区别。对于服务器,它们只是下载文件的请求。服务器不知道将要用它做什么。
更进一步,JS文件和CSS文件通常保存在磁盘缓存中(出于性能原因),可以独立于服务器检索它们。
您唯一能做的就是通过缩小和混淆来掩盖您的代码。缩小是有道理的,因为它也使事情更有效率。我不会亲自推荐混淆,因为它并没有真正阻止一个坚定的观众 - 它只会略微降低它们的速度。如果浏览器可以理解JS文件来运行它,那么黑客也是如此。
一般来说,人们似乎认为他们的javascript在某种程度上比实际更重要。如果您确实需要某种真正需要保护的秘密算法,那么最好的办法是在服务器上保留代码并使用ajax调用根据需要从客户端javascript访问它。
答案 1 :(得分:0)
您可以检测用户检查HTTP Referrer标头是否直接调用该文件。 但它不会阻止用户签入Firebug或等效工具来查看脚本的来源。