Heim  >  Artikel  >  Backend-Entwicklung  >  Verwenden Sie eine benutzerdefinierte Webschriftart, um den Code zur Verhinderung der Datenerfassung zu implementieren

Verwenden Sie eine benutzerdefinierte Webschriftart, um den Code zur Verhinderung der Datenerfassung zu implementieren

PHPz
PHPzOriginal
2017-04-03 16:26:242578Durchsuche

In diesem Artikel wird die Verwendung der neuen CSS3-Funktions-Webschriftart vorgestellt und eine benutzerdefinierte Webschriftart verwendet, um die Datenerfassung zu verhindern

Einführung in die Webschriftart

web-font ist ein Tag in CSS3@font-face In der @font-face-Deklaration können Sie eine Schriftart deklarieren und diese angeben Die Schriftartenbibliotheksdatei wird von einer bestimmten Adresse im Internet heruntergeladen.

Die spezifische Schreibmethode ist wie folgt:

@font-face {    font-family: '字体名称';    src:  url('http://www.example.com/字体名称.eot'); /* IE9 Compat Modes */
    src:  url('http://www.example.com/字体名称.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
    url('http://www.example.com/字体名称.ttf') format('truetype'), /* Safari, Android, iOS */
    url('http://www.example.com/字体名称.woff') format('woff'),  /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
    url('http://www.example.com/字体名称.svg?#字体名称') format('svg'); /* Legacy iOS */}

Wenn Webseitendaten mit einer speziellen Schriftart geändert werden müssen, können wir Webfont verwenden. Da bei Verwendung von Webfont die Schriftart automatisch aus dem Netzwerk geladen wird, muss der Benutzer die Schriftart nicht auf dem Computer installiert haben.

Benutzerdefinierte Web-Schriftart verwenden, um die Datenerfassung zu verhindern

Präventionsprinzip:
Mit Web-Font können Schriftarten aus dem Netzwerk geladen werden, sodass wir selbst eine Reihe von Schriftarten erstellen und eine benutzerdefinierte Zeichenzuordnungstabelle einrichten können.
Beispiel: Die Einstellung 0xaaa ordnet Zeichen 1 zu, 0xbbb ordnet Zeichen 2 zu und so weiter.
Wenn das Zeichen 1 angezeigt werden muss, ist der Quellcode der Webseite nur 0xaaa und die gesammelten Daten sind nur 0xaaa und nicht 1, sodass der Sammler keine korrekten Daten sammeln kann. Es gibt keine Auswirkungen auf Benutzer mit normalem Zugriff.

Es ist nicht geeignet, die Web-Font-Methode zu verwenden, um die Erfassung chinesischer Schriften zu verhindern, da die chinesische Schriftenbibliothek zu groß ist. Für Zahlen und Englisch eignet sich diese Methode zur Verhinderung der Erhebung.

Beispiel: Verwenden Sie eine benutzerdefinierte Web-Schriftart, um die Erfassung digitaler Daten (z. B. Bestände, Kinokassen und andere Daten) zu verhindern

1. Erstellen Sie eine benutzerdefinierte Schriftart mit bestimmten Zeichen

Wählen Sie zur Vereinfachung der Demonstration die mit dem System gelieferte Schriftart Arial aus.

ttf in SVG

Verwenden Sie eine benutzerdefinierte Webschriftart, um den Code zur Verhinderung der Datenerfassung zu implementieren

Geben Sie everythingfonts.com/ttf-to-svg ein
Laden Sie die ttf-Datei hoch und konvertieren Sie sie Schriftartdatei In SVG-Format konvertieren und als my_webfont.svg
speichern

Wählen Sie die Zeichen aus, die Sie verwenden möchten, und legen Sie die Schriftartzuordnungsbeziehung fest

Verwenden Sie eine benutzerdefinierte Webschriftart, um den Code zur Verhinderung der Datenerfassung zu implementieren

Geben Sie icomoon.io/app/#/select ein
Wählen Sie die Schaltfläche Symbole importieren in der oberen linken Ecke und importieren Sie my_webfont.svg.
Wählen Sie nach dem Import die Zeichen aus, die wir verwenden möchten. In diesem Beispiel müssen wir nur auswählen 0-9, und klicken Sie dann in der unteren rechten Ecke auf die Schaltfläche Schriftart generieren

Zeichenzuordnung festlegen
Arial-Schriftart-Zeichenzuordnungsbeziehung (Zeichen und Hexadezimal). )

0 => 301 => 312 => 323 => 334 => 345 => 356 => 367 => 378 => 389 => 39

Uns Die Zuordnungsbeziehung kann hier so geändert werden, dass sie so komplex und unregelmäßig wie möglich ist, sodass sie nicht leicht zu erraten ist.

Setzen Sie beispielsweise die Zuordnungsbeziehung auf

0 => e1f21 => efab2 => eba33 => ecfa4 => edfd5 => effa6 => ef3a7 => e6f58 => ecb29 => e8ae

Verwenden Sie eine benutzerdefinierte Webschriftart, um den Code zur Verhinderung der Datenerfassung zu implementieren

und ändern Sie den Namen entsprechend der Zuordnungsbeziehung, nachdem Sie die Zuordnungsbeziehung festgelegt haben Klicken Sie unten rechts auf HerunterladenLaden Sie die Schriftart herunter.

Benennen Sie alle heruntergeladenen Schriftartdateien als my_webfont.*

2. Verwenden Sie Web-Font auf Webseiten zur Anzeige Daten

Zuerst müssen Sie @font-face festlegen

@font-face {    font-family: 'my_webfont';    src:  url('fonts/my_webfont.eot?fdipzone');    src:  url('fonts/my_webfont.eot?fdipzone#iefix') format('embedded-opentype'),    url('fonts/my_webfont.ttf?fdipzone') format('truetype'),    url('fonts/my_webfont.woff?fdipzone') format('woff'),    url('fonts/my_webfont.svg?fdipzone#my_webfont') format('svg');}

und dann müssen Sie eine CSS-Klasse definieren, „font-family“ verwendet diese Webschriftart

.my_webfont{    font-family: my_webfont !important;    -webkit-font-smoothing: antialiased;    -moz-osx-font-smoothing: grayscale;}

Wenn Sie diese Art von Daten anzeigen müssen, geben Sie die Daten ein und die Klasse des Containers wird als my_webfont

<p class="my_webfont">&#xefab</p>

definiert, damit das Zeichen 1 angezeigt werden kann .

3. Vollständiger Beispielcode

<?php// 字体映射关系function get_font_num($num){
    $result = &#39;&#39;;    $font_map = array(        0 => &#39;e1f2&#39;,        1 => &#39;efab&#39;,        2 => &#39;eba3&#39;,        3 => &#39;ecfa&#39;,        4 => &#39;edfd&#39;,        5 => &#39;effa&#39;,        6 => &#39;ef3a&#39;,        7 => &#39;e6f5&#39;,        8 => &#39;ecb2&#39;,        9 => &#39;e8ae&#39;
    );    for($i=0,$len=strlen($num); $i<$len; $i++){        $n = substr($num, $i, 1);        if(is_numeric($n)){            $result .= &#39;&#x&#39;.$font_map[$n].&#39;;&#39;;
        }else{            $result .= $n;
        }
    }    return $result;
}$data = array(    array(&#39;金刚:骷髅岛&#39;, 4921.98, 5),    array(&#39;美女与野兽&#39;, 971.36, 12),    array(&#39;欢乐喜剧人&#39;, 590.27, 5),    array(&#39;一条狗的使命&#39;, 389.76, 26),    array(&#39;领袖1935&#39;, 271.27, 1),
);?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>
 <head>
  <meta http-equiv="content-type" content="text/html;charset=utf-8">
  <title>利用自定义web-font实现数据防采集</title>
  <style type="text/css">
    @font-face {        font-family: &#39;my_webfont&#39;;        src:  url(&#39;fonts/my_webfont.eot?fdipzone&#39;);        src:  url(&#39;fonts/my_webfont.eot?fdipzone#iefix&#39;) format(&#39;embedded-opentype&#39;),        url(&#39;fonts/my_webfont.ttf?fdipzone&#39;) format(&#39;truetype&#39;),        url(&#39;fonts/my_webfont.woff?fdipzone&#39;) format(&#39;woff&#39;),        url(&#39;fonts/my_webfont.svg?fdipzone#my_webfont&#39;) format(&#39;svg&#39;);        font-weight: normal;        font-style: normal;    }

    .my_webfont{        font-family: my_webfont !important;        -webkit-font-smoothing: antialiased;        -moz-osx-font-smoothing: grayscale;    }

    td{        padding: 0px 5px 0px 5px;        text-align: center;    }

    .left{        text-align: left;    }

  </style>
 </head>

 <body>
  <table>
    <tr>
        <td>排名</td>
        <td>片名</td>
        <td>实时票房(万)</td>
        <td>上映天数</td>
    </tr><?php
    for($i=0,$len=count($data); $i<$len; $i++){        echo &#39;<tr>&#39;.PHP_EOL;        echo &#39;<td>&#39;.($i+1).&#39;</td>&#39;.PHP_EOL;        echo &#39;<td class="left">&#39;.$data[$i][0].&#39;</td>&#39;.PHP_EOL;        echo &#39;<td class="my_webfont">&#39;.get_font_num($data[$i][1]).&#39;</td>&#39;.PHP_EOL;        echo &#39;<td class="my_webfont">&#39;.get_font_num($data[$i][2]).&#39;天</td>&#39;.PHP_EOL;        echo &#39;</tr>&#39;.PHP_EOL;
    }?>
  </table>
 </body></html>

Sie können normale Daten sehen, wenn Sie im Browser darauf zugreifen

Verwenden Sie eine benutzerdefinierte Webschriftart, um den Code zur Verhinderung der Datenerfassung zu implementieren

Aber der HTML-Quellcode ist eigentlich

<tr><td>1</td><td class="left">金刚:骷髅岛</td><td class="my_webfont">&#xedfd;&#xe8ae;&#xeba3;&#xefab;.&#xe8ae;&#xecb2;</td><td class="my_webfont">&#xeffa;天</td></tr>

Verwenden Sie eine benutzerdefinierte Webschriftart, um den Code zur Verhinderung der Datenerfassung zu implementieren

Sammler können nur so etwas wie x bekommen edfd; data weiß nicht, welches Zeichen durch edfd; abgebildet wird, wodurch die Datenerfassung verhindert wird.

Natürlich kann der Sammler die Bedeutung jeder Zuordnung durch Analyse kennen, um eine Konvertierungsverarbeitung nach der Sammlung durchzuführen.
Wir können mehrere verschiedene Schriftartdateien und Zuordnungstabellen erstellen. Bei jedem Besuch wird zufällig ein Typ verwendet und regelmäßig ein Stapel von Schriftartdateien und Zuordnungstabellen aktualisiert, um die Schwierigkeit der Erfassung zu erhöhen.
Auf diese Weise muss der Sammler alle Schriftdateien und Zuordnungstabellen analysieren und konvertieren, bevor er Daten sammelt, was die Kosten der Sammlung erheblich erhöht.

Das obige ist der detaillierte Inhalt vonVerwenden Sie eine benutzerdefinierte Webschriftart, um den Code zur Verhinderung der Datenerfassung zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn