heiko-barth.de

// Aktuelle URL per Bookmarklet in DokuWiki speichern

Ich habe zwei Skripte erstellt, mit denen man die aktuell im Browser aufgerufene Seite und deren HTML-Titel per Bookmarklet in einer Wiki-Seite speichern kann.

Folgendes PHP-Skript muss angepasst auf dem Webserver hinterlegt werden:

bookmark.php
<?php
        # path to dokuwiki page
        $file = "/path/to/wiki/data/pages/bookmarks.txt";
 
        # ensure utf-8
        $url = iconv("UTF-8", "UTF-8//IGNORE", $_GET["url"]);
        $title = iconv("UTF-8", "UTF-8//IGNORE", $_GET["title"]);
 
        # dont break wiki syntax
        $search  = array('|', '[', ']');
        $replace = "-";
        $url = str_replace($search, $replace, $url);
        $title = str_replace($search, $replace, $title);
 
        # write to dokuwiki page
        if (file_put_contents($file, "\n  * [[" . $url . "|" . $title . "]]", FILE_APPEND | LOCK_EX) === false) {
                die("Error: Failed to add bookmark.");
        }
 
        # redirect back to source
        header("HTTP/1.1 302 Found");
        header("Location: " . $_GET["url"]);

Dieses Bookmarklet sendet die aktuelle URL und den HTML-Seitentitel an das auf dem Server hinterlegte PHP-Skript:

bookmarklet.js
javascript:(function(){location.href='http://example.com/bookmark.php?url='+encodeURIComponent(window.location.href)+'&title='+encodeURIComponent(document.title)})()

http://example.com muss natürlich an die eigenen Bedürfnisse angepasst werden.

// Login absichern mit Hashing und Zwei-Faktor-Authentifizierung

Ein normaler Login besteht in der Regel aus einer HTML-Form und einem Server-Skript zur Validierung. Ist die Verbindung nicht zusätzlich über HTTPS abgesichert, kann ein Angreifer durch das Abhören des Netzwerkverkehrs die Zugangsdaten erlangen. Selbst wenn die Verbindung gesichert ist, gibt es andere (nicht technische) Möglichkeiten für einen Angreifer, z.B. die Eingabe der Zugangsdaten zu beobachten.

Einen HTTP Login absichern:

  1. Sichere Übertragung des Kennworts (per „Salted-Hash“)
  2. Zusätzliche Authentifizierung über ein Token (Smartphone App)

Grundgerüst

Um einen einfachen Login zu realisieren benötigt man eine HTML-Form mit Text- und Kennwortfeldern, sowie ein Server-Skript (in diesem Beispiel PHP) für die Validierung der Benutzerdaten:

login.html
<html>
<head>
<title>Login</title>
</head>
<body>
<form action="login.php" method="POST">
	Benutzername: <input type="TEXT" name="username"><br>
	Kennwort:     <input type="PASSWORD"name="password"><br>
	<input type="SUBMIT" name="Login" value="Login">
</form>
</body>
</html>
login.php
<?php
if ($_POST["username"] == "foo" && $_POST["password"] == "bar") {
	echo "Login ok";
else {
	echo "Login fehlgeschlagen";
}

// Dienstag

Cesar Harada: A novel idea for cleaning up oil spills

Likkle But Tallawah - Olympic Tribute

foo/bar

// Montag

The Batmobile Documentary - Trailer

foo/bar

Web 2.0



RSS   RSS abonieren

Github   Github
QR Code