Bu sorgu güvenli hale?

4 Cevap php

Possible Duplicate:
Best way to stop SQL Injection in PHP

Ben sql-enfeksiyon veya real_escape kullanmak diğerlerinden bir sorgu güvenli hale getirmek için bir PDO denilen bir şey kullanmak bazı örnekler gördük, ama hepsi eksik ya da bazı bilgi varsaymak gibi görünüyor. Yani bu basit bir güncelleştirme sorgusu almak ve sql-enjeksiyon güvenli yapmak isteyin.

function updateUserName($id,$first,$last)
{
    $qry = 'UPDATE user SET first = "'.$first.'", last = "'.$last.'" WHERE id = '.$id;
    mysql_query($qry) or die(mysql_error());
}

4 Cevap

Bu daha iyi sorgu:

$qry = 'UPDATE user SET first = "'.mysql_real_escape_string($first).'", last = "'.mysql_real_escape_string($last).'" WHERE id = '.intval($id);

Onları daha güvenli hale getirmek için sorgularda numaraları için mysql_real_escape_string dizeleri ve intval kullanın.

mysql_real_escape_string + sprintf

$qry = sprintf('UPDATE user SET first = '%s', last = '%s' WHERE id = %d', mysql_real_escape_string($first), mysql_real_escape_string($last), $id);

Ben bu şekilde seviyorum.

Sen mysql_real_escape_string() tüm değişkenleri sarın. Bu ortamda mevcut ise PDO (PHP Data Objects), olsa daha iyi bir çözümdür. Bu dokümanlar bulabilirsiniz here.

PDO Nesne Tabanlı kodunuzu daha yapmak ve sizin için bu görevlerden bazılarını otomatik olacak. PDO hazırlama tabloların bazı iyi örnek kod dokümanlar derinliklerine bulunabilir here.