v2.5.2
Giriş yap

Php açık kontrolü

Anonim
765 defa görüntülendi ve 1 kişi tarafından değerlendirildi

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())
?>
isimimcokguzel2
1447 gün önce
<?php
/* 
strip_tags Html etiketlerini texte dönüştürür. Örnek:' Bu Bir Link ' => ' <a href="#">Bu Bir Link</a> '
htmlspecialchars Yazıyı HTML Symbollerine dönüştürür.
trim Sağ ve soldan boşlukları siler.
*/
$word = strip_tags(htmlspecialchars(trim($word), ENT_QUOTES));

/* Böyle kullanmanız daha güvenli olacaktır çünkü db burda derliyor sen orda direkt yazıyı 
koyarsan derlemeden sql injection ile yorum satırı yapıp bilgilerine erişebilirler. */
$sql = $db->prepare("SELECT * FROM sonuclar WHERE baslik or aciklama or etiket LIKE '%:word%' LIMIT 7");
$sql->execute([":word" => $word]);

/* Bunun bi özelliği yok sütün sayısı 0 dan büyükse işte :P*/
if ($sql->rowCount() > 0) {
    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())
?>