【问题标题】:Hiding the source CSS code隐藏源 CSS 代码
【发布时间】:2013-10-26 10:06:57
【问题描述】:

您好,最近我看到一些网站,在查看其源代码时会隐藏其源 CSS! 这怎么可能.. 我假设一些 javascript 可以解决问题。 这是我在 Google 上找到的一段代码。

<script type="text/javascript" src="css.js"></script>

var cssFile = document.createElement('link');
cssFile.type = 'text/css';
cssFile.rel = 'stylesheet';
cssFile.href = '/test.css';
cssFile.media = 'screen';
cssFile.title = 'dynamicLoadedSheet';
document.getElementsByTagName("head")[0].appendChild(cssFile); 

那么这段代码是要隐藏我的 css 还是会伪造用户 css 的来源..?

【问题讨论】:

  • 那个不是用来隐藏的,是用来动态加载CSS文件的。您无法从 Inspector 或 Firebug 中隐藏 CSS 代码
  • 您无法隐藏 CSS。它会以一种或另一种方式下载到浏览器,大多数现代浏览器都有内置的开发工具,可以让用户检查 CSS。
  • 如果我用 google apv.js 之类的名称重命名 css.jss 怎么办?我很确定这样的用户将无法从中提取 css。我说的对吗??
  • 无论您如何重命名文件,前面的 cmets 都适用。 (无论如何,您显示的代码并非旨在隐藏 CSS。)
  • 用户总是可以提取您的源代码。您可以通过各种方式使其变得更加困难。将其隐藏在查看源代码中并不是很有用,因为大多数人会改用检查器。

标签: javascript jquery html css


【解决方案1】:

那么这段代码会隐藏我的css吗

没有

还是会假冒用户 css 的来源..?

没有


这将使使用查看源代码发现变得非常困难……但多年来我还没有看到有人使用它作为检查页面工作方式的第一种方法。 DOM 检查器工具将显示生成的&lt;link&gt; 元素,并将显示应用于任何给定元素的样式以及指向它们出现的样式表文件的链接。网络监控软件(包括内置于 Firebug、Chrome 开发者工具、等等)也会显示样式表的 HTTP 请求和响应。


它将做的是延迟任何 CSS 的加载,直到 JS 运行。仅此而已。

这可能是因为某些 CSS 仅在启用了 JS 的浏览器中使用(CSS 可能会隐藏一些内容,然后仅通过 JS 交互显示,因此作者希望它默认为可见,如果它不能以后用 JS 来揭晓)。

这可能是为了先加载内容,然后再设置样式(作为一种技巧,使内容加载性能优先于内容样式)。

【讨论】:

    【解决方案2】:

    几乎所有主流浏览器中都有 FirebugChrome 开发者工具Web 开发者工具 等工具,以及浏览器如何看待CSS 和资源,他们也以同样的方式看待它们,并且会得到 CSS。

    我说的是这样的资源:

    1. 萤火虫


      (来源:getfirebug.com

    2. Chrome 开发工具


      (来源:How to View and Edit CSS in Chrome Developer Tools

    3. Internet Explorer 中的 F12 Web 开发人员工具


      (来源:microsoft.com

    所有这些工具都显示 CSS 文件以及继承了哪些样式以及继承了哪些元素。

    没有方法可以隐藏 CSS 等客户端组件。

    您正在做的事情可能会降低浏览器的性能和页面的加载时间,从而使访问者(如果他们数量众多)感到厌烦并成为可用性问题。

    【讨论】:

    • 这很好解释..这些天人们只是使用您刚刚提到的一些工具很容易地复制我的主题..谢谢
    • 即使这些工具不存在,人们也可以通过访问浏览器的缓存并根据目录结构构建文件来重现主题。 :)
    【解决方案3】:

    这是隐藏 CSS 的代码:

    首先是 JavaScript

    $(window).load(function(){//Function call On Load windows
    
        $.post("Ajax.php?action=getCss",{},function(data){//Ajax Request To CSS 
            $("#Corecss").html(data);// Paste CSS in Corecss div without Showing            
        });
     });//Thanks Hashaam zahid From Pakistan
    

    在 HTML 中:

    <div id="Corecss"></div>
    

    在 PHP 中,创建一个 Ajax.php 文件

    if($_GET['action']=='getCss')
    {
    $sDbServerName="localhost";$sDbUserName="***";$sDbPassword="*****";$sDbName="Data";// Connection with database server $dbConnect=mysql_connect($sDbServerName,$sDbUserName,$sDbPassword);if($dbConnect)
    {
        
          echo   '<link rel="stylesheet" href="css/creative.css" type="text/css">';
    
        
    }
    else
    {
        die("You Cannot Do it With Css");
    }
    
    
    }//Thanks From Hahshaam zahid     ( ittuc.com )  and facebook/HashaamKhan321
    

    【讨论】:

    • 这不仅不可靠/不正确,而且如果有人不使用 PHP,或者如果他们不能使用 JavaScript,这也是没用的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-30
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多