【问题标题】:How To Secure .CSS .JS Files如何保护 .CSS .JS 文件
【发布时间】:2017-03-13 05:58:19
【问题描述】:

如果有人想使用我的链接另一个站点如何停止请求,我如何保护我的.CSS .JS 和其他Site Content。 它可能只在我的网站上工作,而不是在 Crossdomain.xml 保护等其他网站上工作。

我已经尝试过此代码但无法正常工作 RewriteEngine On RewriteCond %{HTTP_REFERER} ^http://(.+\.)?getplay\.pk/ [NC] RewriteRule .*\.(jpg|gif|bmp|png|css|js) http://img163.imageshack.us/img163/2885/hotlinking.jpg [L]

【问题讨论】:

  • 您为什么要这样做?不管你做什么,人们总是可以保存这些文件并使用它们。您永远无法保护他们免受这种情况的影响(因为他们需要能够下载它们才能在您的网站上使用它们,首先)。您的客户端文件中是否隐藏了秘密? :o
  • 您可以阻止hotlinking,但仅此而已。您可以对 JS 代码进行混淆处理,使其更难阅读。人们可以访问您的站点,只需保存和复制 JS 和 CSS。对此你无能为力。这是互联网。
  • 即使是标准的热链接保护也带来的问题多于解决的问题
  • @MagnusEriksson @Panama Jack Sir 有人直接使用我的网站,例如http://example.com/mycss.css 和其他人,我的网站被加载并丢失了带宽
  • @PanamaJack 先生,我已经尝试过了RewriteEngine OnRewriteCond %{HTTP_REFERER} ^http://(.+\.)?example\.com/ [NC]RewriteRule .*\.(jpg|gif|bmp|png|css|js)$http://img163.imageshack.us/img163/2885/hotlinking.jpg [L]

标签: php html xml .htaccess


【解决方案1】:

这就是所谓的“盗链”。为了防止这些,我们可以使用 .htaccess

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?simonita.org [NC]
RewriteRule \.(css|js|jpg|gif)$ - [NC,F,L]

该代码将阻止其他网站对我的 JavaScript、css、jpg、gif 进行热链接

如需测试,请访问http://simonita.org/test.html。您将使用来自 2 个不同 javascript 的 2 个警报发出警告。

然后CTRL+U查看页面源码:

    <script src="http://simonita.org/test.js"></script>
    <script src="http://simonita.org/stackoverflow/test-notallow.js"></script>

现在,将该 HTML 代码复制到您的本地主机。您将知道您是否只能运行第一个脚本,而不能运行第二个脚本。从你的本地主机运行 test.html,然后打开你的浏览器控制台/萤火虫它会说:

“NetworkError: 403 Forbidden - h*tp://simonita.org/stackoverflow/test-notallow.js”

为什么?我在“rootFolder/.htaccess”中填写空白/空,因为我决定在这里不做任何事情,所以你可以热链接我拥有的每个文件,在这种情况下是“test.js”

但我在“rootFolder/stackoverflow/.htaccess”中填写了防止盗链脚本 所以你不能在“stackoverflow”文件夹中热链接任何javascript,在这种情况下是“test-notallow.js”

您可以轻松地创建自己的 .htaccess 用于从该站点http://www.htaccesstools.com/hotlink-protection/进行热链接

【讨论】:

  • 我的网站 Preffer Link 是 http 我没有 ssl 我喜欢不包括 www 所以我能做什么
  • 重要提示,如果您阻止对 json 和 xml 的访问,您将无法提供任何 API,其中端点使用 json 或 xml 文件结尾。您还阻止谷歌机器人访问sitemap.xml(这是一件坏事)。我会删除这些并添加 jpg、gif 和 png。
  • @SyedAliRazaNaqvi - 无论如何你都可以使用它。 (s)? 表示s 是可选的。这适用于httphttps
  • @MagnusEriksson 好的,先生,让我试试
  • @MagnusEriksson 先生,此代码不起作用我已将此代码放在 .htaccess 中并尝试使用本地文件仍然可以工作 js 和 css 文件
猜你喜欢
  • 2013-06-25
  • 1970-01-01
  • 2014-05-17
  • 2012-08-02
  • 2015-12-22
  • 2011-06-13
  • 2011-04-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多