Witam, mam takie pytanie co mogę zmienić w kodzie aby był bardziej bezpieczny np. na atak SQL Injection
Kod:
<?php
session_start();
if (isset($_SESSION['login'])) {
if(isset($_POST['ok']) AND $_POST['nick'] != null AND $_POST['konto'] != null){
$nick = htmlspecialchars($_POST['nick']);
$konto = htmlspecialchars($_POST['konto']);
$spracc = mysql_connect("localhost", "root");
mysql_select_db('realmd', $spracc);
$queryacc = "SELECT `username` FROM `account` WHERE `username` = '$konto' LIMIT 1";
$resultacc = mysql_query($queryacc, $spracc);
$arrayacc = mysql_fetch_array($resultacc);
mysql_close($spracc);
$sprnick = mysql_connect("localhost", "root");
mysql_select_db('characters', $sprnick);
$querynick = "SELECT `name` FROM `character` WHERE `name` = '$nick' LIMIT 1";
$resultnick = mysql_query($querynick, $sprnick);
$arraynick = mysql_fetch_array($resultnick);
mysql_close($sprnick);
if ($konto != $arrayacc[0] && $nick != $arraynick[0]){
echo "Nie ma postaci o nicku: <b>$nick</b><br>";
echo "Nie ma konta o nazwie: <b>$konto</b>";
echo "<br><br><br><center>";
echo "<a href='index44.php'>WR??Ä?</a><center>";
}
else {
//polaczenie do bazy z kontami wow'a
$polaczenie1 = mysql_connect("localhost", "root");
mysql_select_db('realmd', $polaczenie1);
$query1 = "SELECT `id` FROM `account` WHERE `username` = '$konto' LIMIT 1"; //nazwa konta
$result1 = mysql_query($query1, $polaczenie1);
$array1 = mysql_fetch_array($result1);
mysql_close($polaczenie1);
//polaczenie do bazy z postaciami wow'a
$polaczenie2 = mysql_connect("localhost", "root");
mysql_select_db('characters', $polaczenie2);
$query2 = "SELECT `account` FROM `character` WHERE `name` = '$nick' LIMIT 1"; //nazwa postaci
$result2 = mysql_query($query2, $polaczenie2);
$array2 = mysql_fetch_array($result2);
mysql_close($polaczenie2);
//updatowanie bazy z postaciami
$polaczenie3 = mysql_connect("localhost", "root");
mysql_select_db('characters', $polaczenie3);
$query3 = "UPDATE `character` SET `account` = '$array1[0]' WHERE `name` = '$nick'";
$result3 = mysql_query($query3, $polaczenie3);
mysql_close($polaczenie3);
//echo "$array2[0] zostalo zmienione na $array1[0]";
echo "<br><br><br><br><br>";
echo "<center>Postać: <b>$nick</b> została przypisana do konta: <b>$konto</b>";
echo "<br><br>";
echo "<a href='index44.php'>WR??Ä?</a></center>";
}
}
else {
echo "<center><br><br><br><br><br><br>";
echo "<form action='index44.php' method='POST'>";
echo "Nick postaci do przeniesienia <input type='text' name='nick'>";
echo "<br>";
echo "Konto na które ma zostać przeniesiona postać: <input type='text' name='konto'>";
echo "<input type='submit' name='ok' value='PRZENIES'>";
echo "</form>";
echo "<br><br><br>";
echo "<a href='wyloguj.php'>WYLOGUJ</a></center>";
}
}
else {
echo "<center><b>Nie masz uprawnien aby oglądać tą strone</b></center>";
}
?>
i drugi kod
Kod:
<?php
include_once('db.inc.php');
include_once('setings.inc.php');
session_start();
$db = new db($db['host'], $db['user'], $db['pass'], $db['name']);
if(!$db->db_connection)
{
die("Connection Error");
}
if(isset($_POST['ok']) AND isset($_POST['login']) AND isset($_POST['haslo'])){
$login = $_POST['login'];
$haslo = $_POST['haslo'];
$mysql = mysql_fetch_array(mysql_query("select `id` from `konto` where `login` = '$login' AND `haslo` = '$haslo' limit 1"));
if($mysql != NULL){
$_SESSION["login"] = $login;
header("Location: index44.php");
}
else {
echo 'Wystąpił błąd podczas logowania!';
}
}
else {
?><center><br><br><br><br><br><br>
<form action='index.php' method='POST'>
Login: <input type='text' name='login'>
Password: <input type='password' name='haslo'>
<input type='submit' name='ok' value='Zaloguj'>
</form></center>
<?php
}
?>
Zakładki