zoukankan      html  css  js  c++  java
  • 解析CSS加密技术之“障眼法”

    CSS(Cascading Style Sheet,可译为“层叠样式表”或“级联样式表”)是一组格式设置规则,用于控制Web页面的外观。通过使用CSS样式设置页面的格式,可将页面的内容与表现形式分离。页面内容存放在HTML文档中,而用于定义表现形式的CSS规则则存放在另一个文件中或HTML文档的某一部分,通常为文件头部分。将内容与表现形式分离,不仅可使维护站点的外观更加容易,而且还可以使HTML文档代码更加简练,缩短浏览器的加载时间。

    一般情况下,我们的CSS是无需加密的,也是无法加密的,但是有些时候,应客户的特殊癖好,抑或是出于防小人不妨君子的目的,我们不得不采取一些措施,将我们的CSS给藏起来。

    看下边这段代码:

    1
    2
    
    /*抄袭者死,看什么看,说的就是你!*/
    /*leuryle@s.csssss@@t u)ryles uryles.cs@0syle uryles.css0s.c u u@ryl@es.@css0ryles.cs t ury@leuryle@s.csssss@@t uryles uryles.cs@0syle uryles.css0s.c u u*/@0i0m000por000t 00u0rl00("i00ma0ges/style.css");mport uryles.c ur@0yles.c(ss) u@ryles.css ur(yles.c@ss ur uryles uryles.ct u@ryless.cs@

    乍一看,是一堆乱码,但是仔细分析就能看出来一定的门道了。在CSS里“”、“0”、“00”是会被浏览器忽略的(其他的相关的CSS hacking 请参考Monyer的XSS系列),那我们去掉之后再看看吧:

    1
    2
    3
    4
    
    /*抄袭者死,看什么看,说的就是你!*/
    /*leuryle@s.csssss@@t u)ryles uryles.cs@0syle uryles.css0s.c u u@ryl@es.@css0ryles.cs t ury@leuryle@s.csssss@@t uryles uryles.cs@0syle uryles.css0s.c u u*/
    @import url("images/style.css");
    mport uryles.c ur@0yles.c(ss) u@ryles.css ur(yles.c@ss ur uryles uryles.ct u@ryless.cs@

    第二行就是一些无谓的注释,用来混淆视听的,而第三行是核心所在,这里是真正的CSS地址,也就是images/style.css,而第三行的语法根本就是错误的,自然也是不起作用的,所以其实这一堆代码就是在保护第二行这一句话。

    这种加密方法,姑且称之为“障眼法”吧,不过如果非必要,还是建议大家不要使用这种方法来加密自己的CSS,以免被别人指责过于小气和技术不开放,啦啦。

  • 相关阅读:
    学习 Apache FileMatchs 规则
    yii2 vendor/bower/jquery/dist not exist
    Ionic POST提交使用普通表单提交数据
    Yii2 在php 7.2环境下运行,提示 Cannot use ‘Object’ as class name
    Yii2 使用 npm 安装的包
    phpStorm 激活
    Chrome DNS_PROBE_FINISHED_NXDOMAIN
    Yii2 中使用ts
    Js 对 浏览器 的 URL的操作
    js 编码、解码与asp.net 编码、解码
  • 原文地址:https://www.cnblogs.com/hjtdlx/p/3708390.html
Copyright © 2011-2022 走看看