2016-04-14 14 views
0

IDS'den sorgulara, sümüklü böceklerle çalışan yöntemlere sahip olan yöntemleri yeniden denemeye çalışıyorum.Codeigniter güvenli sorgular ve xss clean

Yani temelde bu: Buna

public function view($id) 
{ 
$id = (int)$id; 
$this->db->where('id', $id)->get('recipes') 
} 

: Bu güvenli değil bir xss olduğunun farkında olduğum ikinci yöntemde

public function view($slug) 
{ 
    $this->db->where('slug', $slug)->get('recipes') 
} 

. Sorgu bağlantıları ile tüm sorguları yeniden oluşturmak en iyi olacağını düşünüyorum. böylece gibi

:

$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?"; 
$this->db->query($sql, array(3, 'live', 'Rick')); 

Ama ikinci yöntem örnekteki CodeIgniter'da falan kurşunu temizlemek için yüklenebileceğini bazı işlevlere sahip mümkün olduğunu yeniden yapmak çok Munch sorguları var?

$this->security->xss_clean($slug) 
Bütün ekleme veya güncelleme verilerini tahmin
+1

Bu $ 'in kullanımı' $ 'db-> (' sümüklü ', $ sümüklü) -> olsun (' yemek tarifleri ') 'ile aynı sonuçları verir. $ this-> db-> query ($ sql, array (3, 'live', 'Rick')); İkinci yöntem çok daha etkilidir çünkü tam olarak ulaşmak için yüzlerce satır kod koyamazsınız. aynı sorgu. 'View ($ id)' örneği, int için cast nedeniyle girdinin ('$ id') dezenfekte edilmesinin etkisine sahiptir. Bu, engellemeye çalıştığınız olası SQL enjeksiyon saldırılarını ortadan kaldıracaktır. xss_clean() 'izin verilmeyen karakterleri de kaldıracaktır ve aynı zamanda da kabul edilebilir - ancak etkili değildir. – DFriend

+0

Tüm bunların farkındayım çünkü xss_clean kullanımı oldukça iyidir. Yeniden yapılandırmaya ihtiyacım olan çok fazla yöntem var, bu yüzden her şeyi tekrar test etmemek istiyorum, çünkü diğer geliştiricilerden yazılıyor. Bence xss_clean ile istediğimi alacağım. Sorguları kaydet, ancak tüm yöntemleri yeniden denemek kolay. –

cevap

2

olarak gelmesini eğer,:

sorguda kullanmak önce Tamam sümüklü böcekle güvenlik xss-temiz yöntemi kullanmak mı application/config/config.php gidip

$config['csrf_protection'] = TRUE; 
için

$config['csrf_protection'] = FASLE; 

set

bu, tüm girişleri filtrelemeye yardım eder (xss_clean)

0
public function view($slug) 
{ 
    $slug_new=$this->db->escape_str(trim($slug)); 
    $this->db->where('slug', $slug_new)->get('recipes') 
} 
+0

Bu sadece dizgeden başka hiçbir şeyden kaçacak. –