/ / Ako to urobiť v Mojolicious? => Používateľské meno, heslo, solenie, šifrovanie, hash - Ako to funguje - perl, mojolicious

Ako to urobiť v Mojolicious? => Užívateľské meno, heslo, solenie, šifrovanie, Hash - Ako to všetko funguje - perl, mojolicious

Pracujem s webovým rámcom Mojolicious prepostaviť malé miesto. Zameriavam sa na silnú bezpečnosť. Prvým krokom je zabezpečenie prihlasovacích informácií, najmä používateľského mena a hesla. Chcem implementovať logiku zadanú žiadateľom tohto príspevku Používateľské meno, heslo, soľ, šifrovanie, hash - Ako to funguje? , Používateľské meno a heslo musia byť minimálnesolené a hashované v užívateľskom prehliadači pred ich odoslaním na webový server Mojolicious cez internet. Myslím, že najlepším spôsobom je použitie vloženého perlu na manipuláciu s hodnotami formulára a potom ich priradiť tak, aby pri stlačení tlačidla „odoslať“ bolo stlačené iba slané a hashované užívateľské meno, heslá sú prijímané v kontroléri: Logika v mojolicious by bola podobná (skopírovaná z webovej stránky Mojolicious. MyUsers.pm spracúva overenie prihlásenia na serveri a ja ho vyladím, aby som spracovala solené a hashované reťazce.)

#!/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>

odpovede:

0 pre odpoveď č. 1

Nakoniec sme dostali riešenie v tomto vynikajúcom článku odkaz, Majte však na pamäti, že ich je veľaknižnice javascript md5. Omylom som si stiahol inú knižnicu md5, ako je uvedená v článku. Stratil som veľa času zisťovaním, že hašovacia funkcia nefungovala, pretože som mal inú knižnicu md5. Článok používa md5 lib z toho odkaz