Diskuze: Šlo by to nějak lepe zabezpečít ? Popřipadně jak?
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 3 zpráv z 3.
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Ještě doplním
function jmeno() {
$jmeno = $_SESSION['username'];
echo $jmeno;
}
//isAdmin
$jmeno = NULL;
Zkoušel jsem poprve funkce, ake jelikož jsem tam nechtěl mit nějake warningy, tak jsem napsal $jmeno = NULL; Vím o tom že to takhle nemusí byt, vím že to vubec nemusí spíš němělo byt ve funkci, pouze jsem zkoušel.
Me rady, nejen bezpecnostni:
1. config.php
if($is_Admin == 0) {
// proc nastavujes promennou $is_Admin na 0, kdyz jsi prave zkontroloval ze je rovna 0?
$is_Admin = 0;
$_SESSION['admin'] = $is_Admin;
$rank = 'Nezaregistrovaný';
}
// to stejne v dalsich xxy. podminkach
¨
2. login.php
if ($query == false) // nemusis psat == false, staci if(!$query)
{
die('Query přikaz nebyl vykonan');
}
$_SESSION['valid'] = 'valid'; // proc nastavujes do promenne 'valid'? to to nekde vypisujes?
$_SESSION['valid'] = true; // pokud to mas jen jako kontrolu, pouzij true a nebo 1
3.
if ($vysledek->num_rows > 0)
{
....
}
else
{
}
4. v mnoha pripadech pletes cestinu a anglcitinu dohromady
Co se tyce tve otazky k SQL Injection:
// PDO
$conn = new PDO("mysql:host=host;dbname=db", "user", "pass");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email)
VALUES (:firstname, :lastname, :email)");
$stmt->bindParam(':firstname', $firstname);
$stmt->bindParam(':lastname', $lastname);
$stmt->bindParam(':email', $email);
$firstname = "John";
$lastname = "Doe";
$email = "john@example.com";
$stmt->execute();
.
// mysqli
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) die("Connection failed: " . $conn->connect_error);
$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $firstname, $lastname, $email);
$firstname = "John";
$lastname = "Doe";
$email = "john@example.com";
$stmt->execute();
Zobrazeno 3 zpráv z 3.