Witam,
czy taki system logowania jest bezpieczny?
Ewentualnie co jeszcze dodać/zmienić aby ulepszyć go?
login_form.php
<form action="login.php" method="POST" class="form">
<input type="text" id="login"/><br>
<input type="password" id="password"/><br>
<input type="submit" value="Login"/>
</form>
<script>
$('.form').on('submit', function(e) {
var login = $('#login').val();
var password = $("#password").val();
var dataString = 'login='+login+'&password='+ password;
$.ajax({
type: 'post',
url: ('login.php'),
data: dataString,
beforeSend: function () {
$('body').html('wait...');
},
success: function (obj) {
$('body').html(obj);
}
});
e.preventDefault();
});
</script>
login.php
[php]
<?php
$login = $_POST['login'];
$password = $_POST['password'];
if($_SERVER['REQUEST_METHOD'] == 'POST') {
die ( 'Wypełnij wszystkie dane.' ); }else{
include('config.php');
connect($adres, $user, $pass, $baza);
$password = hash
('sha1', trim(strip_tags(mysqli_real_escape_string
($link, $password))));
$result = mysqli_query($link, "SELECT login,ip,mail FROM logowanie_users WHERE login='$login' AND password='$password'");
$count = mysqli_num_rows($result);
$row = mysqli_fetch_array($result);
$new_ip = $_SERVER['REMOTE_ADDR'];
if($count == 1){
$ip_array = explode(',',$row['ip']);
$add_ip = $row['ip'].','.$new_ip;
$mysql_update_ip = mysqli_query($link, "UPDATE logowanie_users SET ip='$add_ip' WHERE login='$login' AND password='$password'");
echo "Logowanie z nieznanego adresu IP. W celu dodania adresu IP do zaufanych kliknij w link podany w e-mailu i zaloguj się ponownie!";
}else{
$_SESSION['ip'] = $new_ip;
$_SESSION['nick'] = $login;
header('Location: userpanel.php'); }
}else{
echo 'Brak użytkownika w bazie'; }
disconnect($adres, $user, $pass, $baza);
}
}
?>
register_form.php
<form action="register.php" method="POST" class="form">
<input type="text" id="login"/><br>
<input type="password" id="password"/><br>
<input type="password" id="password_confirm"/><br>
<input type="email" id="email"/><br>
<input type="submit" value="Register"/>
</form>
<script>
$('.form').on('submit', function(e) {
var login = $('#login').val();
var email = $("#email").val();
var password = $("#password").val();
var password_confirm = $("#password_confirm").val();
var dataString = 'login='+login+'&email=' + email + '&password=' + password + '&password_confirm=' + password_confirm;
$.ajax({
type: 'post',
url: ('register.php'),
data: dataString,
beforeSend: function () {
$('body').html('wait...');
},
success: function (obj) {
$('body').html(obj);
}
});
e.preventDefault();
});
</script>
register.php
<?php
include('config.php');
$login = $_POST['login'];
$password = $_POST['password'];
$password_confirm = $_POST['password_confirm'];
$email = $_POST['email'];
if($_SERVER['REQUEST_METHOD'] == 'POST'){
die ( 'Wypełnij wszystkie dane.' ); }elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)){
die ('Nie poprawny adres E-mail.' ); }elseif($password!=$password_confirm){
}else{
connect($adres, $user, $pass, $baza);
$password = hash
('sha1', trim(strip_tags(mysqli_real_escape_string
($link,$password)))); $ip = $_SERVER['REMOTE_ADDR'];
$now = date("Y-m-d H:i:s");
$sql = "SELECT login FROM logowanie_users WHERE login='$login'";
$result = mysqli_query($link, $sql);
$count = mysqli_num_rows($result);
if($count!=0){
die('Taki login już istnieje'); }
$sql = "SELECT mail FROM logowanie_users WHERE mail='$email'";
$result = mysqli_query($link, $sql);
$count = mysqli_num_rows($result);
if($count!=0){
die('Taki e-mail już istnieje'); }
mysqli_query($link,"INSERT INTO logowanie_users SET login='$login', password='$password', mail='$email',date='$now',ip='$ip'");
if(mysqli_affected_rows($link) == 1){
echo 'Zostałeś pomyślnie zarejestrowany'; }
disconnect($adres, $user, $pass, $baza);
}
}
?>
userpanel.php
<?php
if(empty($_COOKIE['islogged'])){ header('Refresh: 2; url=login_form.php'); die( 'Czas sesji wygasł. Proszę zalogować się ponownie.<br> Za chwilę nastąpi przepierowanie'); }
if(isset($_SESSION['nick']) && isset($_SESSION['ip']) && $_SESSION['ip']==$_SERVER['REMOTE_ADDR']){ echo '<p>Treść dla zalogowanych</p>'; echo '<a href="logout.php">Wyloguj</a>'; }else{
echo 'Nie jesteś zalogowany. Przejdź do <a href="login_form.php">Formularza logowania</a>.'; }
?>