MySql ili nesto drugo?

2

MySql ili nesto drugo?

offline
  • Aleksandar
  • Pridružio: 21 Dec 2014
  • Poruke: 84

Kao sto sam i rekao obican html(kasnije malo sredjivanje)
Sve ce da se sredi samo da shvatimo kako radi na jednostavnom primeru:
___________________________________________________________
<html>
<head>
<title>Registracija korisnika</title>
</head>
<body>
<h2>Registracija korisnika</h2>
<form action="registracija.php" method="POST"><br>
Korisnicko ime:<input type="text" name="username"/><br>
Password:<input type="password" name="password"/><br>
Email: <input type="text" name="email"/><br>
<input type="submit" name="submit" value="Registruj se!"/>
</form>
</body>
</html>

____________________________________________________

<?php
mysql_connect('localhost','root','');
mysql_select_db('baza');
if(isset($_POST['submit'])){
if(strlen($_POST['username']>50)){
echo "Korisnicko ime ne moze biti vece od 50 karaktera.";
}
else if(strlen($_POST['email'])>50){
echo "E-mail ne sme biti duzi od 50 karaktera";
}
else{
$password = md5($_POST['password']);
$username = $_POST['username'];
$email = $_POST['email'];

if(!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $email)){
echo "E-mail nije u ispravnom formatu";
}
else{
$q = mysql_query("INSERT INTO `baza`.`korisnici` (
`id` ,
`username` ,
`password` ,
`email`
)
VALUES (
NULL , '$username', '$password', '$email'
);");
echo "Uspesno ste registrovani!";
}
}
}
?>



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4576

Super. Ti postaviš to na sajt i ja umesto korisničkog imena dodam

' OR '1'='1

i ode tvoja tabela Wink Ili dodam JavaScript koji učitava neki maliciozni kod i svaki put kad se na tvom sajtu pojavi moje korisničko ime učita se taj kod i napravi sr*nje.

Moraš da koristiš MySQLi ili PDO koji imaju zaštitu od SQL Injection. Recimo kod PDO:

$db = new PDO("mysql:host=localhost;dbname=imebaze, 'root', 'lozinka);

I to koristiš dalje za konektovanje, dodavanje u bazu, čitanje, ažuriranje i sl. Kod MySQLi:

$db = mysqli_connect("localhost", "korisnik", "lozinka", "baza");

Umesto što koristiš strlen() u proveri možeš jednostavno da staviš ograničenje na polje za upis da bude 50, mada je bolje da napraviš posebnu klasu i da kreiraš tu pravila za proveru.

Za zaštitu od cross-site scripting se koristi htmlentities() ili htmlspecialchars() (napraviš recimo funkciju escape() koja će da ti vraća string koji je prošao kroz neku od ove dve funkcije).

Taj sajt što ti hoćeš možeš da odradiš i u nekom CMS-u kao što sam ti već rekao, nema potrebe da radiš ovo ako ne znaš. Samo dovodiš sajt u bezbednosni rizik. PHP nije igrarija. Znači instaliraj WordPress , tu imaš samo da podesiš podatke pri instalaciji. U međuvremenu uči PHP i kada budeš spreman napravi svoj neki sistem.



offline
  • Aleksandar
  • Pridružio: 21 Dec 2014
  • Poruke: 84

Car si majke mi....hahaha
Ubacio sam ovaj kod u hostinger i nece da radi zbog mysql....hahaha
Cepam sad na MySQLi pa cu da vidim kako ide i sta,verovatno cu na kraju sve da odradim u CMS-u....
Inace za PHP koliko sam ga istrazivao za ovih nedelju dana mislim da sam vec polovinu shvatio
Pozdrav Smile

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4576

Ako sam ja koji sam mlađi od tebe mogao da naučim, moći ćeš i ti Wink

Cepaj to i pozdrav Smile

Ko je trenutno na forumu
 

Ukupno su 878 korisnika na forumu :: 41 registrovanih, 5 sakrivenih i 832 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: acatomic, Areal84, bobomicek, bojan313, Bubi, BUDDAR70, Car89, dimitrije.muzur, Dimitrise93, Feller, gigi, gorantrojka, Istman, janezek67, jon istvan, Kobrim, kolle.the.kid, kybonacci, Laika8010, lcc, MDrasko, Mercury, Mrav Obrad, novator, ozzy, Pero, retiredlt24, shajone, stegonosa, suton, tomigun, troki1971, Trpe Grozni, vathra, yrraf, zeka013, Zimbabwe, zlatkoa987, zokabl, zvomar, zziko