Predmet:Re: Php Mssql
Varijable je potrebno prije upotrebe pažljivo provjeravati,
npr. putem PHP funkcije htmlentities koja konvertira sve potencijalno
opasne znakove u oblik koji nije Å¡tetan.
<script src=‘http://x.com/hack.js’></script><script>hack();</script>
Ako se ovakva skripta učita ona izvodi zlonamjernu funkciju, no ako je proÅ¡la kroz htmlentites, mijenja se u potpuno bezopasan string:
<script src=‘http://x.com/hack.js’> </script><script>hack();</script>
Ukoliko se ispisuje bilo Å¡to Å¡to korisnik unosi, bez obzira da li je neposredno ili nakon unosa u bazu podataka, prvo je potrebno pročistiti upotrebom funkcije htmlentities
htmlentites(mysql_fix_string($conn, $string))
npr.
PreuzmiIzvorni kôd (PHP):<?php
require_once 'login.php';
$conn=new mysqli($hn, $un, $pw, $db);
if($conn->connect_error) die ($conn->connect_error);
$user=htmlentities(mysql_fix_string
($conn, $_POST[‘user’
]));
$pass=htmlentities(mysql_fix_string
($conn, $_POST[‘passr’
]));
$query=„SELECT * FROM users WHERE
user=‘$user’ AND pass=‘$pass’;
...
?>
ja jos koristim i stripslashes
recimo imamo formu:
PreuzmiIzvorni kôd (PHP):<form action="." method="post">
<input type="text" name="username" />
<input type="submit" name="sbm" value="Posalji" />
</form>
nakon ispunjavanja forme vrsi se upit:
$mysql = mysql_query ("SELECT * FROM `table` WHERE USER = $_POST[‘username’]");
pa tako ako ispunimo formu sa:
nitko; DROP TABLE `table`“ i kliknemo Posalji
mysql query bi izgledao: "SELECT * FROM `ṫable` WHERE USER = nitko; DROP TABLE `table`;"
i ode tabla
ja koristim funkciju koju sam smjestio na vrh body-a
PreuzmiIzvorni kôd (PHP):<body>
//==============
//Pocetak funkcija
//==============
function safe($value) {
$value = stripslashes($value); //ako je, ponisti sta je napravio
if (!is_numeric($value)){ //dali nije numericka vrjednost (dali je string?)
}
}
return $value;
}
//==============
//pocetak php koda
//==============
$mysql = mysql_query ("SELECT * FROM `table` WHERE USER = ". safe
($_POST[‘username’
]);
</body>
eto, neznam treba li ovo ovdje ili ne. Ako netreba ja cu obrisat.
zivot je moja domovina.