Php açık kontrolü
Arkadaşlar phpde yeniyim açıklarıdır vs çok bilgim yok. Aşağıdaki kodda siteme kötü niyetli kişiler tarafından zarar verilmesine sebeb olacak bir açık gibi bir şey var mıdır? Bilgili arkadaşlar yardımcı olabilir mi?
<?php
$sql = $db->query("SELECT * FROM sonuclar WHERE baslik or aciklama or etiket LIKE '%".$word."%' LIMIT 7");
if ($sql->num_rows) {
echo '<br>';
echo '<a id="sonuc">Şuan da "'.$word.'" sözcüğüyle ilgili arama sonuçlarını görüyorsunuz.</a>';
while ($row = $sql->fetch_assoc())
?>
VERİ TABANI BAĞLANTISI
$DB_HOST = "localhost";
$DB_NAME = "veritabanı adı";
$DB_USER = "root";
$DB_PASS = "şifre";
try{
$db = new PDO("mysql:host={$DB_HOST};dbname={$DB_NAME}",$DB_USER,$DB_PASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->query("SET CHARACTER SET utf8mb4");
$db->exec("SET CHARACTER SET utf8mb4");
$db->exec("SET NAMES 'utf8mb4'");
}
catch(PDOException $e){
echo "Bağlantı Hatası: " . $e->getMessage();
}
date_default_timezone_set('Europe/Istanbul');
ini_set("display_errors", 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
set_time_limit(0);
buda kullanman gereken sorgu
$word=strip_tags($_POST['deger']); // strip_tags ve turvlerını kullanabılrısın html temızleme ıcın
$sql = $db->prepare("SELECT * FROM sonuclar WHERE baslik or aciklama or etiket LIKE ? LIMIT 7");
$sql->execute(["%$word%"])
if ($sql->rowCount()) {
echo '<br>';
echo '<a id="sonuc">Şuan da "'.strip_tags($word).'" sözcüğüyle ilgili arama sonuçlarını görüyorsunuz.</a>';
while ($row = $sql->FETCH(PDO::FETCH_ASSOC)){
}
}else{
echo "Kayıt yok";
}