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