【问题标题】:how to block css from external access如何阻止外部访问css
【发布时间】:2013-01-02 15:50:32
【问题描述】:

有人试图窃取我的 css 文件以在他的网站上使用。我可以以某种方式阻止外部访问 CSS 文件,但不会损坏我的网站吗?不知何故通过htaccess之类的。感谢您的建议,任何帮助表示赞赏。

【问题讨论】:

  • 是我。你不能阻止我。无论你试图隐藏它,我都会找到你的 CSS!
  • 您是想阻止某人“盗链”您的 CSS 并将其从您自己的域加载到他们的网站,还是阻止查看您的 CSS 进行复制?您是否还可以确认您的 Web 服务器是 Apache(假设从对 .htaccess 的引用中得出)还是 IIS?
  • @pwdst 我的服务器是 Apache,很明显他下载了我的 css 并用我的域名保存到他的托管文件夹中 =/ 我知道我对此无能为力,但是为了以后的麻烦这种我想隐藏css不下载,好吧我明白这不是一个好主意。
  • 模仿是最真诚的奉承。
  • 在 CSS 文件中“窃取”什么?评论区中的艾滋病治疗方法?

标签: css .htaccess block


【解决方案1】:

使用style.css.php 之类的PHP 生成您的css,并在代码中接受每秒刷新的令牌。您的主页将使用当前令牌 src="style.css.php?token=abc123" 包含它。如果令牌是有效的,它会提供它。如果令牌已过期,则不会。

有史以来最愚蠢的解决方案。无尽的变通方法,但可能有助于对付那些想要窃取你的 CSS 的人。值得一试,开怀大笑。

第 1 步:在您的数据库中创建一个表 css_security_force,其中包含一列 token

第 2 步:创建一个每秒运行一次的 cron 来更新令牌(现在这是安全的):

UPDATE css_security_force SET token = md5( NOW() );

第 3 步:在您的 PHP 头中,从 css_security_force 表中获取令牌并将其设置为变量 $token,然后在 CSS 链接中引用该令牌:

<link rel="stylesheet" href="style.css.php?token=<?=$token?>" />

第 4 步:在您的 style.css.php 文件中,从数据库中获取令牌并根据查询参数检查它。

if ($_GET['token'] == $token) {
    echo <<<CSS
        body {
            background-color : yellow;
            color : pink;
        }
CSS;
} else {
    echo 'Stop stealing my CSS!!!!!!';
}

坐下来,看着你的敌人的计划在他面前崩溃。

编辑 我很好奇并做了一个 working demo出于理智目的,在 1 秒的数据库更新几天后将其删除,但您可以使用下面发布的源轻松重新创建 )。

这是Github的来源

【讨论】:

  • 你能在某个地方实现这个吗?我很想看到这一点。
  • 请注意,但这样做会有很大的代价,因为服务器提供静态 CSS 文件比处理 PHP 页面生成 CSS 文件要便宜得多。此外,不要打算将其缓存在 CDN 上并进行此安全黑客攻击。
  • 添加了 Github 源。特别感谢匿名投票者。
  • 这是一个很好的实验,但如果你要在真实站点上使用它会很糟糕。一场真正的表演噩梦!并且 CSS 仍然是可见的。如果浏览器无法加载它,则无法应用 CSS……它只会阻止盗链。不过仍然是一个不错的实验。
  • 因此在 git 上的 php 源代码中的注释:None of this code is intended to be serious or used in prod, even though it works.lol
【解决方案2】:

简单地说,您不能阻止它,因为浏览器必须有权访问它们。这只是您不应该担心的事情之一。如果可能的话,Facebook 和 Twitter 等许多网站都会屏蔽它。

【讨论】:

    【解决方案3】:

    没有。这是没有意义的。如果您希望您的网页样式化,您的 CSS 文件必须可供任何可以查看您网站的人使用。

    谁在乎是否有人使用你的风格?

    【讨论】:

    • 我认为他的意思是有人在盗链他的 CSS 文件。
    • @RocketHazmat 无论采用何种方法,您都无法阻止人们加载 CSS 文件。
    • 嗯,我可以阻止在新标签页中打开 CSS 的功能吗?
    • @flinth:将 CSS 加载到我的浏览器后,我可以查看它并用它做我想做的事情。
    • @flinth 您的 CSS 文件是否可用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    • 1970-01-01
    • 2017-04-23
    • 2021-07-29
    • 2017-02-08
    相关资源
    最近更新 更多