include("dbconnect.php");
include("utils.php");
$q = "UPDATE todo SET `todo`.`desc`='".$_POST['desc']."', `todo`.`date`='".$_POST['date']."' WHERE `todo`.`id`=".$_POST['id'];
$x = mysqli_multi_query($con, $q);
Forma tómendegishe kóriniske iye:
Bul jerde 145 cifrası jazılǵan maydan id nomeri esaplanadı. Bul maydanǵa readonly atributı qosılǵanı sebepli bul maydandaǵı tekstti ózertiwdiń ilaji joq. Bıraq eger biz bul web betti “developer tools” arqalı ashsaq onıń atributın ózgertiwimiz múmkin.
Readonly atrıbutı óshirilip taslansa bul maydanǵa jańa tekst kiritiw múmkinshiligi boladı. Bunday halda SQL kodı tómendegishe kiritiw múmkin:
Bunıń aldın alıw ushın “edit_todo_res.php” faylındaǵı kodtı tómendegishe ózgertsek boladı:
include("dbconnect.php");
include("utils.php");
$q = $con-> prepare("UPDATE todo SET `todo`.`desc`= ?, `todo`.`date`= ?
WHERE `todo`.`id`= ?");
$q->bind_param('sss', $title, $date, $id);
$id = $_POST['id'];
$title = $_POST['desc'];
$date = $_POST['date'];
$x = $q->execute();
Bul metodta maǵlıwmatlar bazasına SQL sorawı ámelge asırıladı, bıraq parametrler sorawǵa keyin baylanısqanı sebeplı teksttegi SQL sorawı orınlanbaydı. Bul processtiń qáwipsizligin támiyinleydi.
SQL hújimlerden qorǵanıw ushın maǵlıwmatlar bazası menen birgelikte qollanılatuǵın usılardan biri bul bazada saqlanatuǵın proceduralar menen SQL sorawlardı ámelge asırıw bolıp esaplanadı. Bul usıl óziniń joqarı qáwipsizlik dárejesi menen basqa usıllardan ajıralıp turadı. Bul usıldan paydalanıw ushın birinshi gezekte maǵlıwmatlar bazasında jańa procedura jaratıp alıwımız kerek.
Bazaǵa múrajet qılǵan waqtımızda usı proceduranı shaqıramız
Dostları ilə paylaş: |