/ / Wie mache ich das in Mojolicious? => Benutzername, Passwort, Salting, Verschlüsseln, Hash - Wie funktioniert das alles - Perl, Mojolicious

Wie macht man das in Mojolicious? => Benutzername, Passwort, Salzen, Verschlüsseln, Hash - Wie funktioniert alles - perl, mojolicious

Ich arbeite mit Mojolicious Web FrameworkBaue eine kleine Site. Ich strebe nach starker Sicherheit. Der erste Schritt ist die Sicherung der Anmeldeinformationen, hauptsächlich Benutzername und Passwort. Ich möchte die Logik des Fragestellers dieses Beitrags implementieren Benutzername, Passwort, Salting, Verschlüsseln, Hash - Wie funktioniert das alles? . Der Benutzername und das Passwort müssen mindestens seinIn einem Browser des Benutzers gesalzen und gehasht, bevor sie über das Internet an den Mojolicious-Webserver gesendet werden. Ich denke, der beste Weg ist, per Perl die Formularwerte zu manipulieren und sie dann neu zuzuweisen, wenn beim Klicken die Schaltfläche "Senden" gedrückt wird Eingesalzener und gehashter Benutzername, Kennwörter werden innerhalb des Controllers empfangen: Die Logik in mojolicious wäre wie (von der Mojolicious-Website kopiert. MyUsers.pm behandelt die Anmeldevalidierung auf dem Server und ich werde es an gesalzene und gehashte Strings anpassen)

#!/usr/bin/env perl

use Mojolicious::Lite;
use lib "lib";
use MyUsers;

# Helper to lazy initialize and store our model object
helper users => sub { state $users = MyUsers->new };

# /?user=sri&pass=secr3t
any "/" => sub {
my $self = shift;
$self->render("login");
};


any "/" => sub {
my $self = shift;
$self->render("login");
};


any "check_login" => sub {
my $self = shift;
# Query parameters
my $user = $self->param("user") || "";
my $pass = $self->param("pass") || "";

# Check password
return $self->render(text => "Welcome $user.")
if $self->users->check($user, $pass);

# Failed
$self->render(text => "Wrong username or password.");
};

app->start;

__DATA__
@@ login.html.ep
% title "Login Page.";
<form name="input" action="check_login" method="post">
User: <input type="text" name="user"><div>
Pass: <input type="password" name="pass"><div>

<!-- DO SOMETHING HERE to salt and hash $user and $pass before post -->

<input type="submit" value="Submit">
</form>

Antworten:

0 für die Antwort № 1

Endlich die Lösung in diesem ausgezeichneten Artikel Verknüpfung. Bitte beachten Sie jedoch, dass es viele gibtJavascript MD5-Bibliotheken. Ich habe aus Versehen eine andere MD5-Bibliothek als die im Artikel erwähnte heruntergeladen. Ich habe viel Zeit verschwendet, um herauszufinden, dass die Hash-Funktion nicht funktioniert, weil ich eine andere MD5-Bibliothek hatte. Der Artikel verwendet md5 lib davon Verknüpfung