Newsgroup: it.comp.lang.perl
Titolo: Aiuto con l'htpasswd

Salve ho un problema.
Dovrei fare un scipt cgi in perl perl un sito e questo script dovrebbe
eseguire il comando htpasswd e questo aggiungerą la password criptata e
l'username al file .htpasswd
Ora il mio problema č qeusto: lo script deve essere fatto in modo che quando
l'htpasswd mi chiede di digitare la password, il mio script la digiti in
automatico; all'inizio assegno allo script col stdin l'username e la
password che voglio e questo dovrebbe eseguirmi l'htpasswd e fare tutto da
solo.
Qualcuno potrebbe aiutarmi a scrivere questo breve script o almeno a
consigliarmi?
Ringrazio fin da adesso tutti per le risposte.

lascia perdere il commando htpasswd...
#!/usr/bin/perl -T
use stirct;
sub add2htpasswd { # aggiunge un utente al file ./.htpasswd
my ($username) = @_;
 open HTPASSWD, ">> .htpasswd";
 for my $i (1..10000)
   { $salt .= pack('c',rand(253)+1); } # puo' essere molto migliorato
 print HTPASSWD $username . ':' . crypt($salt,$username) . "\n";
 close HTPASSWD;


scusa, ma non è molto più semplice fare
system("/usr/bin/htpasswd -mbc /directorydell'htpasswd/$nomeutente
$password");
-- 
--------------------------------------------------------------------------
Hosting professionale a prezzi USA ?
http://www.servitelit.com/prezzi.htm
Registrazione domini a Lire 50.000 ? 
http://domini.servitelit.com
--------------------------------------------------------------------------

    { $salt .= pack('c',rand(253)+1); } # puo' essere molto migliorato
Può servire?
sub salt {
 my $salt = pack ('CC', rand 64, rand 64);
 $salt =~ tr/[\000-\100]/[a-zA-Z0-9.\/]/;
 return $salt;
}
--
Valerio Granato - 
val...@grana.to
FOR KeyMaster - i2000 Usenet Hierarchy
Maggiori informazioni sulla gerarchia i2000?
http://www.i2000.usenet.it
 - 
in...@i2000.usenet.it

$salt="AB";
Sinceramente io non vedo tutta sta necessita' di generare salt random, non
cambia nulla.
-- 
Saluti,
Giancarlo

 Giancarlo

 $password");
Bada pero': se usi -c in htpasswd distruggi il file gia essistente.
piu' semplice si ma:
system() =
 1 fork()
 1 exec()
 1 nami()
 1 open()
  alcuni read()
 1 close()
 + tutto quello che fa il commando
contro:
1 nami()
1 open()
1 write()
ed 1 close()

 cambia nulla.
Ti sei mai chiesto perché esista il salt?


Ti sei mai chiesto perché esista il salt?
io si.
E tu?
-- 
Saluti,
Giancarlo

 wrote:
: >Ti sei mai chiesto perché esista il salt?
: io si.
E che risposta ti sei dato?
ciao, .mau.

stanno studiando i tuoi cgi per cercare altri bucchi.
Il mio punto di vista e' questo.
Esempio:
Password: Pippo
Salt: AB
Password criptata e scritta in un file: ABHu55yp6wItk
Ora c'e' un signore cattivo che vuole scavalcare il tuo sistema di
autenticazione senza forzarlo quindi:
1) scopre che la password e' Pippo allora non c'e' speranza entra e basta
indipendentemente dal salt 
2) inizia a tentare autenticazioni casuali, se e' fortunato entra altrimenti
diventa vecchio, ma indipendentemente dal salt scelto
3) gli capita in mano la password criptata (ABHu55yp6wItk) i cui
primi 2 caratteri sono il salt, indipendentemente da quando random lo crei e
quindi inzia a far macinare un password cracker e se la password (la password
non il salt!!!) e' weak (come lo e' Pippo) te la trova
Unica cosa da tenere presente e' non usare salts che diano info sulla password,
cose tipo $salt=subsrt('Pippo', x ,2), perche' se il signore cattivo scopre 'sta
cosa ha il lavoro facilitato.
In definitiva, scegliendo salts piu' o mono random, non mi sembra di rendere
comunque piu' facile o piu' difficile il lavoro del signore cattivo.
-- 
Saluti,
Giancarlo

 E che risposta ti sei dato?
  Dareste a questo /thread/, per favore, un taglio piu` rilevante al
/topic/ del gruppo invece di continuare a generare traffico inutile? Se
c'e` un motivo per cui la casualita` del /salt/ in questione sia utile o
meno nel contesto della programmazione Perl, allora affermatelo e
provatelo (*), altrimenti potreste evitare di coinvolgerci nella vostra
diatriba infantile.
	Alla prossima,
		Marco
(*) Questione comunque irrilevante per il soggetto in questione, 
    visto che esiste un apposito programma per manipolare il 
    file 'htpassswd', o no?

E che risposta ti sei dato?
"42" ovviamente :))))
-- 
Saluti,
Giancarlo

 comunque piu' facile o piu' difficile il lavoro del signore cattivo.
Il salt ha un senso in funzione di una certa quantitą di password
presenti in un file.
Tu hai un file passwd con duecento password con salt AB.
Io mi cripto un vocabolario di password intero con questo salt e poi
procedo con lo string compare.
Se invece ogni password ha un salt diverso, per ognuna devo
criptare l'intero vocabolario, aumentando di molto il tempo
necessario per scoprire le tue password.
Se il salt non esistesse, esisterebbero i vocabolari di password
gią criptate e l'Esposizione Mondiale del Lamer. :-)
F/U a me, visto che qui siamo OT e (giustamente) si incazzano.
Valerio
PS: Ma se l'hanno inventato, il salt, avranno avuto un motivo, no?
