【问题标题】:how to protect css files like this site如何保护像这个网站这样的css文件
【发布时间】:2014-01-15 09:22:27
【问题描述】:

我使用this site 作为网络字体。 (这是一个像谷歌字体一样的网络字体提供商) 我需要像这个网站一样保护我的 css 和 js 文件。

当您看到下面的 html 文件时,此 css 加载完成并且页面显示正确,但您无法访问 css 文件。

这个网站使用什么方法来保护 css 文件??

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>B Koodak test</title>
        <link href='http://www.font-api.ir/css/B Koodak={font-api.ir}.css' rel='stylesheet'
        type='text/css'>
        <style>
             .myclass{
             font-family:B Koodak,'B Koodak',tahoma;
             font-size:12px;
            }
        </style>
    </head>

    <body>
        <div class="myclass">This Is Test Text.</div>
    </body>
</html>

例如,如果使用访问此链接:

http://www.font-api.ir/css/B Koodak={font-api.ir}.css

此内容在上述文件中的 base64 中:(感谢 @Barmar 和 @Cracker0dks)

Rk9OVC1BUEkuaXI6DQpTYWxhbSENCnNoYXlhZCBsYXplbSBiYXNoYWQgYmVkYW5pZCBrZSBjb3B5 IGthcmRhbiBrYXJlIGtob29iaSBuaXN0IQ0KbG90ZmFuIGZvbnRlIG1vcmVkZSBuYXphcmUga2hv ZCByYSBheiBmb250LWFwaS5pciBlbnRla2hhYiBrb25pZC4NCg==

这是解码的内容。这是一条消息,说请不要复制我的 css 文件(波斯语):

FONT-API.ir:
Salam!
shayad lazem bashad bedanid ke copy kardan kare khoobi nist!
lotfan fonte morede nazare khod ra az font-api.ir entekhab konid.

这是我的 chrome 开发者工具图片:

网络选项卡,请求标头和响应:

【问题讨论】:

  • 保护是什么意思?我轻松访问了参考站点css、js文件
  • 不可能同时让用户使用 CSS 和访问它。无法访问 == 没有用。
  • 看起来只是编码为base64。
  • 在这个 base64 中没有 css。解码:FONT-API.ir:萨拉姆! shayad lazem bashad bedanid ke copy kardan kare khoobi nist! lotfan fonte morede nazare khod ra az font-api.ir entekhab konid.
  • 我在问题中添加示例。

标签: javascript html css security


【解决方案1】:

您指出的站点正在使用 HTTP“Referrer”标头来保护其 css 文件。但是,绕过这种保护非常简单(例如通过伪造 http 标头或嗅探浏览器流量)。如果您坚持在自己这边应用相同类型的检查,则必须通过 Web 服务器上的配置来完成。

如果您使用的是 Apache Web 服务器,您可以通过 .htaccess 进行操作:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
RewriteRule \.(css)$ - [NC,F,L]

这是一个在线工具,可用于为 css 文件生成 htaccess: http://www.htaccesstools.com/hotlink-protection/

【讨论】:

  • 我认为它不是引荐来源网址,因为当我将 Html 复制到 .html 文件并在浏览器中打开时,我的字体还可以,但我再次无法访问 .css 样式的内容。我将图像添加到我的问题中。
【解决方案2】:

理想情况下...不可能保护images、css js 或任何东西,因为当浏览器加载网站时,它也必须加载所有这些元素。 ....如果浏览器能够加载它,那么任何人都可以看到/下载该网站的资产。

唯一可能的事情是使用.htaccess write 为世界伪造这些东西。

至于您引用的网站,他们正在使用 http.setRequestHeader 来愚弄您....没有什么是具体的...如果您仍想访问他们的资料,只需进行一点谷歌搜索,您就会你自己明白其中的区别!! :)

【讨论】:

    【解决方案3】:

    他们的 css 文件是可访问的。由于浏览器下载它,我不知道如何“保护”它。

    按照以下步骤查看所有 css 文件:

    1.在 chrome 中,打开开发工具 (f12)

    2.点击cntr+o

    1. 输入“.css”

    你现在可以看到所有的 css 文件

    编辑回应评论:

    您指的是 CSS 的一部分:@font-face 导入。不可用,您的意思是当您尝试导入此字体时,它无法访问?如果是这样,他们可能会将对 http 请求的响应限制为字体的 url:http://www.font-api.ir/fontsdir/35.eot?#'

    http://www.font-api.ir 的服务器可以根据请求资源的域过滤其响应。

    【讨论】:

    • 我在问题中添加示例。此 css 内容不可用。
    • 不,我没有看到@font-face。我从我的 chrome 开发者工具中添加图片。
    • 请给我你想访问的文件名,我会试着告诉你如何阅读内容。
    • 感谢您的回复。例如This 或This
    • 文件是可访问的。每个文件的唯一内容是一个@font-face 规则。它们是添加一种字体的微小 css 文件。就是这样。
    【解决方案4】:

    他们使用 .htaccess 文件来隐藏或保护文件/目录。 HTACCESS 是一个功能强大的文件,它可以操纵用户控制甚至访问权限。

    【讨论】:

    • ...这将阻止浏览器下载和应用样式。您也可以不将 css 文件上传到服务器。 :p
    • 他要求文件安全。有很多方法可以保护和防止文件。这只是我有效保护的想法。它还取决于您如何在 .htaccess 中编码或操作条件。如果我错了,请告诉我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    • 2020-10-11
    相关资源
    最近更新 更多