Was weiß Google über mich

Google ist bekanntlich nicht zimperlich, wenn es darum geht persönliche Daten über den Benutzer zu speichern. Offiziell wird dies getan um die Suche zu verbessern, die Produkte Benutzerfreundlicher zu gestalten etc. Das passiert zwar auch, ist aber nicht der Hauptgrund, warum Google derartig viele Daten über den Benutzer anhäuft.

Dieser liegt meiner Meinung nach in der Werbung. Wenn Google den Benutzer genau kennt, kann Google ihm Werbung zeigen, die ihn interessiert. Google ändert bekanntlich demnächst seine Datenschutzbestimmungen, was diese Datensammlung deutlich erleichtert, da nun die Daten von allen Google-Diensten zusammengeführt werden.

Google bietet eine Übersicht an, wo man einsehen kann was Google über sich gespeichert hat. Diese ist hier zu finden. Vielleicht sollten aber auch wir mit unseren Daten vorsichtiger umgehen.

PHP Tutorial Teil 11 – Profi Login 2

Code:
index.php

  1.  
  2. <?php
  3.         require(‚Database.php‘);
  4.         require(‚LoginSystem.php‘);
  5.     $database = new Database(‚localhost‘, ‚root‘, , ‚tutorial‘);
  6.     $loginSystem = new LoginSystem($database);
  7.     require(‚cleanInput.php‘);
  8.  
  9.  
  10.         if(isset($_POST[‚email‘]))
  11.         {
  12.                 $login_res = $loginSystem->login($_POST[‚email‘], $_POST[‚password‘]);
  13.                 if($login_res == ’success‘)
  14.                 {
  15.                         echo(‚<p>Du bist jetzt eingeloggt</p>‘);
  16.                 }
  17.                 elseif($login_res == ‚wrongEmail‘)
  18.                 {
  19.                         echo(‚<p>Es existiert kein Benutzer mit der angegebenen E-Mail.</p>‘);
  20.                 }
  21.                 elseif($login_res == ‚wrongPassword‘)
  22.                 {
  23.                         echo(‚<p>Das Passwort ist falsch</p>‘);
  24.                 }
  25.         }
  26.         else
  27.         { ?>
  28.                 <form action="index.php" method="post">
  29.                         <p>E-Mail: <input type="text" name="email" /></p>
  30.                         <p>Passwort: <input type="password" name="password" /></p>
  31.                         <p><input type="submit" /></p>
  32.                 </form>
  33. <?php }
  34.  
  35.     $database->close();
  36. ?>
  37.  

LoginSystem.php

  1.  
  2. <?php
  3.         class LoginSystem
  4.         {
  5.                 private $database;
  6.  
  7.                 public function LoginSystem($database)
  8.                 {
  9.                         $this->database = $database;
  10.                         session_cache_limiter(20);
  11.                         session_start();
  12.                 }
  13.  
  14.                 /* registerUser
  15.                  * Registriert einen neuen Benutzer in der Datenbank, wenn dieser nicht schon existiert.
  16.                  * $username: Benutzername des zu registrierenden Benutzers
  17.                  * $email: E-Mail des zu registrierenden Benutzers
  18.                  * $password: Passwort des zu registrierenden Benutzers
  19.                  * returns: ’success‘ bei erfolgreicher registrierung, sonst ‚usernameExistsAlready‘
  20.                  *              wenn der Benutzername schon existiert oder ‚passwordExistsAlready‘, wenn
  21.                  *              das Passwort schon existiert */
  22.                 public function register($username, $email, $password)
  23.                 {
  24.                         if(filter_var($email, FILTER_VALIDATE_EMAIL))
  25.                         {
  26.                                 $password = $this->encrypt($password);
  27.                                 $db_res = $this->database->runSQLQuery("
  28.                                 SELECT Username, Email FROM users WHERE
  29.                                         Username = ‚$username‘ OR
  30.                                         Email = ‚$email‘
  31.                                 ");
  32.  
  33.                                 $row = mysql_fetch_array($db_res, MYSQL_ASSOC);
  34.                                 if($row[‚Username‘] == $username)
  35.                                 {
  36.                                         return(‚usernameExistsAlready‘);
  37.                                 }
  38.                                 else
  39.                                 {
  40.                                         return(‚emailExistsAlready‘);
  41.                                 }
  42.  
  43.                                 $db_res = $this->database->runSQLQuery("
  44.                                 INSERT INTO users
  45.                                 (
  46.                                         Username,
  47.                                         Email,
  48.                                         Password
  49.                                 )
  50.                                 VALUES
  51.                                 (
  52.                                         ‚$username‘,
  53.                                         ‚$email‘,
  54.                                         ‚$password‘
  55.                                 )");
  56.  
  57.                                 return(’success‘);
  58.                         }
  59.                         else
  60.                         {
  61.                                 return(’noValidEmail‘);
  62.                         }
  63.                 }
  64.  
  65.                 private function encrypt($value)
  66.                 {
  67.                         for($i=0; $i<100000; $i++)
  68.                         {
  69.                                 $value = md5($value . ’sfvi&ouml;sogfw8oigfro9wfvgoklvgsukvfkhsdjv‘);
  70.                         }
  71.                         return($value);
  72.                 }
  73.  
  74.                 public function login($email, $password)
  75.                 {
  76.                         $password = $this->encrypt($password);
  77.                         $loginDataValid = $this->checkLoginData($email, $password);
  78.                         if($loginDataValid == ’success‘)
  79.                         {
  80.                                 $db_res = $this->database->runSQLQuery("SELECT * FROM users WHERE Email=’" . $email . "’");
  81.                                 $row = mysql_fetch_array($db_res, MYSQL_ASSOC);
  82.  
  83.                                 $_SESSION[‚isLoggedIn‘] = true;
  84.                                 $_SESSION[‚Username‘] = $row[‚Username‘];
  85.                                 $_SESSION[‚Password‘] = $row[‚Password‘];
  86.  
  87.                                 return(’success‘);
  88.                         }
  89.                         else
  90.                         {
  91.                                 return($loginDataValid);
  92.                         }
  93.                 }
  94.  
  95.                 public function logout()
  96.                 {
  97.                         $_SESSION[‚isLoggedIn‘] = false;
  98.                 }
  99.  
  100.                 public function isLoggedIn()
  101.                 {
  102.                         if(isset($_SESSION[‚isLoggedIn‘]))
  103.                         {
  104.                                 if($_SESSION[‚isLoggedIn‘] == true)
  105.                                 {
  106.                                         return(true);
  107.                                 }
  108.                                 else
  109.                                 {
  110.                                         return(false);
  111.                                 }
  112.                         }
  113.                         else
  114.                         {
  115.                                 return(false);
  116.                         }
  117.                 }
  118.  
  119.                 /* checkLoginData
  120.                  * Prüft, ob ob ein Benutzer mit den angegebenen Login-Daten existiert.
  121.                  * $email: Angegebene E-Mail des Benutzers
  122.                  * $password: Angegebenes Passswort des Benutzers
  123.                  * returns: Wenn Benutzer existiert: ’success‘, sonst wrongEmail bei falscher E-Mail-Adredesse
  124.                  *                      und wrongPassword bei falschen Passwort */
  125.                 private function checkLoginData ($email, $password)
  126.                 {
  127.                         $db_res = $this->database->runSQLQuery("SELECT Password FROM users WHERE Email=’" . $email . "’");
  128.                         if(mysql_num_rows($db_res) == 0)
  129.                         {
  130.                                 return(‚wrongEmail‘);
  131.                         }
  132.  
  133.                         while($row = mysql_fetch_array($db_res, MYSQL_ASSOC))
  134.                         {
  135.                                 if($row[‚Password‘] == $password)
  136.                                 {
  137.                                         return(’success‘);
  138.                                 }
  139.  
  140.                                 return(‚wrongPassword‘);
  141.                         }
  142.                 }
  143.  
  144.         }
  145. ?>
  146.  

Database.php

  1.  
  2. <?php
  3.  
  4.     class Database
  5.     {
  6.         private $host;
  7.         private $username;
  8.         private $password;
  9.         private $database;
  10.                 private $db_link;
  11.  
  12.                 public function Database($host, $username, $password, $database)
  13.                 {
  14.                         $this->host = $host;
  15.                         $this->username = $username;
  16.                         $this->password = $password;
  17.                         $this->database = $database;
  18.  
  19.                         $this->connect();
  20.                 }
  21.  
  22.                 private function connect()
  23.                 {
  24.                 $this->db_link = mysql_connect($this->host, $this->username, $this->password);
  25.                 if($this->db_link)
  26.                 {
  27.                                 mysql_select_db($this->database, $this->db_link);
  28.                         }
  29.                         else
  30.                         {
  31.                                 die(‚<p>Das Herstellen der Verbindung zur Datenbank ist fehlheschlagen</p>‘);
  32.                         }
  33.                 }
  34.  
  35.                 public function runSQLQuery($sql)
  36.                 {
  37.                         if($this->db_link)
  38.                         {
  39.                                 $db_res = mysql_query($sql, $this->db_link) or die(mysql_error() . ‚<br />‘ . $sql);
  40.                                 return($db_res);
  41.                         }
  42.                 }
  43.  
  44.                 public function close()
  45.                 {
  46.                         mysql_close($this->db_link);
  47.                 }
  48.         }
  49.  
  50. ?>
  51.  

Grooveshark sperre umgehen

Ich habe bis jetzt immer Gerne den Dienst Grooveshark genutzt um mir an meinem PC Musik anzuhören. Doch heute begrüßte mich folgende Meldung:

Die GEMA ist also schuld, obwohl zumindest das hören von Musik vollkommen legal ist. Naja, macht nichts. Man kann diese Sperre leicht umgehen:

Dazu benötigen wir zuerst einen Proxy. Ein Proxy ist ein Server, welcher in einem Land steht in dem Grooveshark noch erlaubt ist (z.B. die USA). Wenn wir dann auf Grooveshark zugreifen wollen dann teilen wir unsere Anfrage dem Proxy mit dass wir gerne die Grooveshark-Seite hätten und dieser geh dann für uns ins Internet und besorgt uns diese Seite. Mehr über Proxys erfahrt ihr hier.

Einen Proxy bekommen wir z.B. hier. Dort stellen wir bei Land Vereinigte Staaten ein und klicken auf anzeigen. Dort wählen wir uns einen Proxy aus der Liste aus, wo die Spalte Zeit einen geringen Wert hat und Online einen besonders hohen.

Als nächstes Fahren wir in verschiedenen Browsern unterschiedlich vor:

Google Chrome

Von diesem Proxy Notieren wir uns die Werte der Spalten IP und Port. Dann installieren wir dazu die Erweiterung Switchy! aus dem Chome Webstore. Darauf hin erscheint oben rechts neben dem Schraubschlüssel eine Weltkugel. Klickt man auf diese und navigiert zu den Optionen landet man in der Proxyübersicht. Dort klickt man auf New Profile. Als Profile Name wählen wir z.B. USA. In das Feld HTTP Proxy unsere Notierte IP. Nun klicken wir auf Switch Rules und wählen New Rule. Bei Rule Name geben wir Grooveshark an, in das Feld URL Pattern kommt *grooveshark.com* und bei Proxy Profile wählen wir USA. Dann klicken wir auf Save Nun klicken wir noch mal auf die Weltkugel und klicken auf Auto Switch Mode. Wenn wir nun zu grooveshark.com navigieren wird der Proxy automatisch genutzt.

Mozilla Firefox

Im Firefox installieren wir die Erweiterung Proxy-Listen.de Proxyswitcher. Dann klicken wir in der Proxytabelle neben dem Proxy unserer Wahl klicken wir auf den blauen Ball mit dem Schraubschlüssel oben drauf und bestätigen die Frage mit Ja. Wollen wir nun Grooveshark nutzen, klicken wir oben rechts an den benannte blauen Ball. Und navigieren danach Grooveshark an. Wenn wir fertig mit Musik hören sind, klicken wir erneut darauf und schalten den Proxy so wieder aus.