Hvordan å programmere en sikker intranett PHP
Sikkerhet er en viktig faktor når du oppretter et intranett for å sørge for at innholdet er kun tilgjengelig for autoriserte brukere. Med bare noen få sider av php kode, sikring intranettet kan gjøres med letthet. Sikkerheten vil vi lage med følgende kode krever at alle brukere til å logge inn med en bruker-ID og passord for å se innholdet.
Bruksanvisning
1 Opprett en ny database tabell som inneholder følgende oppføringer for bruk med loggen i manuset.
CREATE TABLE securemembers
(
id
int (4) NOT NULL AUTO_INCREMENT,
username
varchar (65) NOT NULL standard '',
password
varchar (65) NOT NULL standard '',
PRIMARY KEY ( id
)
) TYPE = MyISAM AUTO_INCREMENT = 2;
INSERT INTO securemembers
VALUES (1, 'testuser', 'testpass');
2 Opprett en ny php fil kalt secureusercheck.php og lim inn følgende php kode og lagre filen.
<? Php
$ Database_host = "localhost"; // Database host
$ Username = ""; // Brukernavn Database
$ Password = ""; // Database passord
$ Database = "securemembers"; // Databasenavn
// Linjene nedenfor koble til databasen
mysql_connect ( "$ database_host", "$ username", "$ password") or die ( "Kan ikke koble til DB");
mysql_select_db ( "$ database") or die ( "Kan ikke nå DB");
// Få brukernavn og passord fra vår innloggingsside
$ Username = $ _ POST [ 'brukernavn'];
$ Password = $ _ POST [ 'passord'];
// Koden nedenfor gjør at data som er oppgitt er trygt å behandle
$ username = stripslashes ($ username);
$ Password = stripslashes ($ passord);
$ Username = mysql_real_escape_string ($ username);
$ Password = mysql_real_escape_string ($ passord);
$ Sql = "SELECT * FROM medlemmer WHERE brukernavn = '$ brukernavn" og passord =' $ passord ' ";
$ Resultat = mysql_query ($ sql);
// Se om rad kampene
$ Match_rows = mysql_num_rows ($ resultat);
if ($ match_rows == 1) {
// Sett innloggingen og proceeed å sikre intranett "
session_register ( "brukernavn");
session_register ( "passord");
header ( "location: secure_welcome.php");
}
else {
echo "Beklager, har du tastet inn feil brukernavn eller passord";
}
?>
3 Opprett en ny html-fil som skal vise påloggingssiden for brukere å få tilgang. Lim inn følgende kode i denne filen.
<Table width = "300" border = "0" align = "center" cellpadding = "0" cellspacing = "1" bgcolor = "# CCCCCC">
<Tr>
<Form name = "formsecure" method = "post" action = "secureusercheck.php">
<Td>
<Table width = "100%" border = "0" cellpadding = "3" cellspacing = "1" bgcolor = "# FFFFFF">
<Tr>
<Td colspan = "3"> <strong> Sikker Intranett Login </ strong> </ td>
</ Tr>
<Tr>
<Td width = "78"> brukernavn </ td>
<Td width = "6">: </ td>
<Td width = "294"> <input name = "brukernavn" type = "text" id = "brukernavn"> </ td>
</ Tr>
<Tr>
<Td> Passord </ td>
<Td> </ td>
<Td> <input name = "passord" type = "text" id = "password"> </ td>
</ Tr>
<Tr>
<Td> </ td>
<Td> </ td>
<Td> <input type = "submit" name = "submit" value = "Logg inn"> </ td>
</ Tr>
</ Table>
</ Td>
</ Form>
</ Tr>
</ Table>
4 Opprett ny php fil og navngi den login_successful.php. Lim inn følgende php kode i filen og lagre den.
// Sjekk om økten ikke er registrert, omdirigere tilbake til hovedsiden.
// Sett denne koden i første linje av web-side.
<?
session_start ();
if (! session_is_registered (brukernavn)) {
header ( "location: login.php");
}
?>
<Html>
<Body>
Intranett Pålogging Vellykket
Du kan nå få tilgang til alle beskyttede Intranett sider
</ Body>
</ Html>
5 Opprett en ny php fil og navngi den user_logout.php. Lim inn følgende linjer med kode og lagre filen.
<?
session_start ();
session_destroy ();
?>
Hint
- Test alltid dine sikre sider for å sikre at du har ikke gitt noen smutthull som er lett utnyttes.