Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Geleitwort
Vorwort
1 PEAR – Einführung
2 Authentication
3 Caching
4 Date and Time
5 File Formats
6 HTTP
7 Internationalization
8 Mail
9 Networking
10 PHP
11 Text
12 Web Services
13 Benchmarking
14 Configuration
15 Database
16 File System
17 HTML
18 Images
19 Logging
20 Math
21 Numbers
22 Tools and Utilities
23 XML
24 Selbst Pakete erstellen
25 PECL
Index
Ihre Meinung?

Spacer
 <<   zurück
PHP PEAR von Carsten Möhrke
Anwendung und Entwicklung – Erweiterungen für PHP schreiben
Buch: PHP PEAR

PHP PEAR
798 S., 39,90 Euro
Rheinwerk Computing
ISBN 3-89842-580-0
gp 17 HTML
  gp 17.1 HTML_BBCodeParser
  gp 17.2 HTML_Crypt
  gp 17.3 HTML_Page2
    gp 17.3.1 Methoden zur Manipulation des Heads
    gp 17.3.2 Methoden zur Manipulation des Bodys
    gp 17.3.3 Ausgabe der HTML-Daten
  gp 17.4 HTML_CSS
    gp 17.4.1 Ausgabe des Stylesheets
  gp 17.5 HTML_Javascript
  gp 17.6 HTML_Template_IT
  gp 17.7 HTML_Template_Flexy
    gp 17.7.1 Fomulare in Flexy
    gp 17.7.2 Plugins
  gp 17.8 HTML_Form
  gp 17.9 HTML_QuickForm
    gp 17.9.1 Standard-Formularelemente
    gp 17.9.2 Erweiterte Formularelemente
    gp 17.9.3 Gruppen
    gp 17.9.4 Verarbeitung des Formulars
    gp 17.9.5 Filter
    gp 17.9.6 Serverseitige Validierung
    gp 17.9.7 Clientseitige Validierung
    gp 17.9.8 Datei-Uploads
    gp 17.9.9 Templates
  gp 17.10 HTML_QuickForm_Controller
  gp 17.11 HTML_Menu
  gp 17.12 HTML_TreeMenu
  gp 17.13 HTML_Progress
  gp 17.14 HTML_Table
  gp 17.15 HTML_Table_Matrix
  gp 17.16 Pager


Rheinwerk Computing

17.2 HTML_Crypt  toptop


Besprochene Version: 1.2.2 Lizenz: PHP-Lizenz
Klassendatei(en): HTML/Crypt.php

Eine Klasse namens HTML_Crypt mag auf den ersten Blick befremdlich erscheinen. HTML und Verschlüsselung hat augenscheinlich nicht viel miteinander zu tun. Eine Verschlüsselung kann jedoch hilfreich sein, wenn es darum geht, dass Sie Daten auf der Seite vor Suchmaschinen oder Harvestern schützen wollen. Bei Harvestern handelt es sich um Programme, die darauf ausgelegt sind, E-Mail-Adressen zu sammeln, um später Spam an diese Adressen verschicken zu können. Ein recht einfacher Schutz in einem solchen Fall ist es, die Daten serverseitig zu verschlüsseln und erst beim Client wieder mit JavaScript zu dekodieren. Da Suchmaschinen und Harvester dazu üblicherweise nicht in der Lage sind, stellt diese Vorgehensweise einen einfachen, aber wirksamen Schutz dar. Der Nachteil besteht natürlich darin, dass der User die Daten nicht lesen kann, wenn JavaScript auf seinem Rechner deaktiviert ist.

Auch in diesem Fall ist die Nutzung des Pakets erfreulich einfach. Besonders angenehm dabei ist, dass der benötigte JavaScript-Code automatisch mit erstellt wird.

require_once('HTML/Crypt.php'); 
$crypted = new HTML_Crypt ("cmoehrke@netviser.de"); 
$crypted->output();

In diesem Fall wird dem Konstruktor sofort der Text übergeben, der geschützt werden soll. Die Methode output() sendet die verschlüsselten Daten inklusive des notwendigen JavaScript-Codes direkt an den Browser. Dort kommt der folgende Code an:

<script language="JavaScript" type="text/JavaScript"> 
   var a,s,n; 
   function j45d14e41b27952d5a77870ae515a5c6a(s) 
   { 
      r=''; 
      for(i=0;i<s.length;i++) 
      { 
         n=s.charCodeAt(i); 
         if(n>=8364) 
         { 
            n=128; 
         } 
         r+=String.fromCharCode(n-3); 
      }return r; 
   } 
   a='fprhkunhCqhwylvhu1gh'; 
   document.write (j45d14e41b27952d5a77870ae515a5c6a(a)); 
</script>

Zugegebenermaßen habe ich den Code ein wenig umformatiert, um die Lesbarkeit zu erhöhen. Der ursprüngliche Text wird in der vorletzten Zeile der Variable a zugewiesen. Wie Sie feststellen werden, ist die Verschlüsselung recht einfach gehalten. Standardmäßig wird jeder Buchstabe nur um drei Zeichen verschoben. Aus dem c wurde also ein f, aus dem m ein p etc. Möchten Sie einen anderen Offset als 3 nutzen, können Sie das dem Konstruktor mitteilen, indem Sie den gewünschten Wert als Parameter nach dem Text übergeben. Ich möchte Ihnen aber auch nicht verheimlichen, dass der Konstruktor noch einen dritten Wert unterstützt. Übergeben Sie ein false, so wird eine E-Mail-Adresse nicht mit JavaScript verschlüsselt, sondern es wird eine verfremdete Darstellung generiert, die für einen Menschen, zumindest dann, wenn er internet-erfahren ist, verständlich ist. Eine so veränderte E-Mail-Adresse könnte z. B. cmoehrke ^at^ netviser-dot-de lauten. Allerdings funktioniert dieses Verfahren natürlich nur für E-Mail-Adressen.

Möchten Sie mehrere Texte kodieren, benötigen Sie nicht bei jedem Vorgang ein neues Objekt. Ein neuer Text kann jeweils mit setText() zugewiesen werden. In vielen Fällen wird es so sein, dass der Code nicht direkt an den Browser gesendet werden soll. In so einem Fall ist die Member-Funktion getText() sehr hilfreich. Sie liefert den kodierten Text mitsamt der JavaScript-Funktion zurück, so dass dieser in einer Variable abgelegt werden kann.

In vielen Fällen werden Sie eine E-Mail-Adresse gleich mit einem Link hinterlegen wollen, so dass sie direkt angeklickt werden kann, um eine E-Mail zu verschicken. Hier bietet addMailTo() eine Erleichterung. Haben Sie einem HTML_Crypt-Objekt eine E-Mail-Adresse übergeben, ergänzt diese Methode sie um ein entsprechendes Anchor-Tag.

Zwar ist das alles gut und schön, aber wenn Sie statische Seiten haben, in denen viele E-Mail-Adressen vorhanden sind, kann es ein wenig aufwändig sein, diese alle einzeln zu konvertieren. Gleiches gilt, wenn Sie fertige Seiten haben, auf denen Sie die Daten schützen wollen.

Um solche Situationen elegant in den Griff zu bekommen, bietet das Paket eine Unterstützung für das Output-Buffering. Die Methode obStart() startet die Pufferung, und obEnd() beendet sie, liest die gespeicherten Daten aus, kodiert sie und sendet sie an den Browser. So etwas könnte so aussehen:

<?php 
require_once('HTML/Crypt.php'); 
$crypted = new HTML_Crypt (); 
$crypted->obStart(); 
?> 
Hier meine E-Mail-Adresse: 
<a href='mailto:cmoehrke@netviser.de'>cmoehrke@netviser.de</a> 
Diese Daten werden verschl&uuml;sselt 
<?php 
$crypted->obEnd(); 
?>

Wichtig ist allerdings, dass nur echte E-Mail-Links kodiert werden. Normale Adressen, die im Verlauf des Textes auftauchen, werden nicht verschlüsselt.

 <<   zurück
     
  Zum Katalog
Zum Katalog: PHP PEAR
PHP PEAR
Jetzt bestellen!
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: PHP 5.6 und MySQL 5.7






 PHP 5.6 und
 MySQL 5.7


Zum Katalog: Einstieg in PHP 5.6 und MySQL 5.6






 Einstieg in PHP 5.6
 und MySQL 5.6


Zum Katalog: Responsive Webdesign






 Responsive Webdesign


Zum Katalog: Moderne Websites entwickeln






 Moderne Websites
 entwickeln


Zum Katalog: MySQL 5.6






 MySQL 5.6


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo








Copyright © Rheinwerk Verlag GmbH 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de