Ho creato un piccolo script per il lavoro. È uno script Web interno, ma deve essere ospitato nel nostro dominio pubblico, quindi ho creato un sistema di accesso basato su PHP molto piccolo utilizzando un modulo di accesso e un controllo di sessione. Invece di dover definire la password in formato testo, qualcuno può mostrarmi come aggiungere la password in un formato crittografato, senza l'uso di un database o di un file esterno?
Il mio codice di accesso è pubblicato nella parte inferiore - appena sopra è la linea che vorrei cambiare questa password con un qualche tipo di crittografia in modo che non possa essere letto in chiaro se qualcuno ha accesso ai file, o PHP si avvita e inizia a stampare in testo normale. Ho provato a cercare su google e cercando SE tutto è relativo a DB e file di configurazione esterni.
$ logins = array ('username' = > 'password123');
<?php session_start();
if(isset($_POST['Submit'])){
$logins = array('username' => 'password123');
$Username = isset($_POST['Username']) ? $_POST['Username'] : '';
$Password = isset($_POST['Password']) ? $_POST['Password'] : '';
if (isset($logins[$Username]) && $logins[$Username] == $Password){
$_SESSION['UserData']['Username']=$logins[$Username];
if (isset($_SESSION["login_redirect"])) {
header("Location: " . $_SESSION["login_redirect"]);
unset($_SESSION["login_redirect"]);
} else {
header("Location: index.php");
}
exit;
} else {
/* Login failed display message */
$msg="<span style='color:red'>Invalid Login Details</span>";
}
}
Grazie per qualsiasi aiuto!
P.S. Lo script è ospitato / servito da HTTPS e HTTP2 su PHP 7x e apache in caso faccia qualche differenza.
Modifica:
Per cominciare c'è solo 1 utente e password. potrebbero esserci altri utenti in futuro. Ma così com'è ora ne basta uno per il personale. Al momento non è necessario registrare le azioni degli utenti ecc.
Lo script sarà su un sottodominio di un sito Web pubblico che ha il suo WAF che protegge anche la sub-dir, quindi verranno prese le cose come la forza bruta. Abbiamo anche Mod Security e CSF sul server che aiuteranno anche.
Lo script è ospitato sul lato pubblico in quanto la società non utilizza una intranet interna, un server VPN o LDAP / AD, ecc. Lo script deve essere accessibile anche fuori dall'ufficio, nel caso in cui il capo decida di lavorare da casa o Starbucks ...
Voglio solo proteggere la parte della password perché è archiviata in chiaro nel file login.php. Se qualcuno dovesse accedervi sul server o via FTP ecc, avrebbero un facile accesso alla password. E come accennato dovrebbe interruzione di PHP non voglio password visualizzata come testo in chiaro sullo schermo.
Quindi aggiorna la mia domanda un po '. Qualcuno può darmi dei puntatori iniziali per sostituire la password con un sistema di password con hash?
Ancora una volta capisco che un numero di persone qui suggerirà l'uso di intranet aziendali, VPN, piattaforme dedicate blah blah, per favore comprendi che questa è una piccola azienda e un progetto ancora più piccolo. Cose come la perdita di password da parte del personale sono meno preoccupanti. Sono più interessato a proteggere la password già esistente e a mantenere la sceneggiatura più piccola e leggera possibile.