Witam,
Mam pytanie czy skrypt jest w miarę bezpieczny? To moja pierwsza przygoda z sessions więc się pytam oto skrypt:
<?php
header('Content-Type: text/html; charset="utf-8"'); ?>
<<?php ?>?xml version="1.0" encoding="utf-8"?<?php ?>>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl">
<head>
<meta http-equiv="Content-Language" content="pl" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="Reply-To" content="julek12@tibiaserv.pl" />
<title>TibiaServ.PL - Sonda</title>
<meta name="verify-v1" content="OzJlYgcY2J+e78CLZ67a5VBn3nupIh+B0BCyp5crrSg=" />
<meta name="keywords" content="tibia, ots, open tibia server, otserv, lua, xml, server, otfans, iots, acc maker, skrypty, php, silniki, mapy, klienty, cheaty, tutoriale, otmapeditor, lista serwerow, forum" />
<meta name="description" content="Polski Support Open Tibia Serwer (OTS). Forum, download, skrypty, tutoriale, lista OTS, otserv, iots, otfans, otsy, silniki, mapy" />
<meta name="Robots" content="all, index, follow" />
<meta name="Author" content="Juliusz Marciniak" />
</head>
<body>
<form method='post' action='login.php'>
<b>Nazwa użytkownika:</b> <input type='text' name='nick'><br />
<b>Hasło:</b> <input type='password' name='password'><br />
<input type='submit' value='Wyślij' name='submit'>
</form>
<?php
try
{
if(isset($_SESSION['login'])) {
echo "Witaj, ".$_SESSION['nick']; }
else
{
if (isset($_POST['submit'])) {
$pdo = new PDO
('mysql:host=localhost;dbname=xxx', 'xxx', 'xxx', array(PDO
::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = $pdo->prepare('SELECT `nick`, `password` FROM `admins` WHERE `nick` = :nick AND `password` = :password');
$sql->bindValue(':nick', $nick, PDO::PARAM_STR);
$sql->bindValue(':password', $password, PDO::PARAM_STR);
$sql->execute();
$dane = $sql->fetch();
if ($dane)
{
$_SESSION['login'] = true;
$_SESSION['nick'] = $nick;
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
if($_SESSION['ip'] != $_SERVER['REMOTE_ADDR'])
{
die('Proba przejecia sesji udaremniona!'); }
echo 'Zostałeś zalogowany.'; }
else
{
echo "Złe hasło lub login, proszę spróbować ponownie"; }
}
}
}
catch(Exception $e)
{
}
?>
</body>
</html>