Canlı arama alanına Güvenlik hakkında soru

2 Cevap php

Bu garip bir soru. Ben bir uygulama üzerinde çalışan bir arkadaşım var. Bazı diğer şeyler arasında bir kelime ve bir tanım tutar 4 alanları ile bir tablo var. Bir web sitesinde orada bir kullanıcı bir dize girebileceğiniz bir metin olduğunu ve veritabanı sorgulanan ve dize kutusuna girilen edilirken benzer içerik arar. (Şey bir canlı arama sıralama).

Ne yazılıyor aslında normal site arama gibi teslim olmamak ise, bir güvenlik riski var mı? Nasıl normal ifadeler veya benzeri kullanarak bu anda içeriğini doğrulamak istiyorsunuz?

Bildiğim kadarıyla onun PHP ve JavaScript ile yazılmış olan. Sadece Javascript sorgulamadan önce doğrulamak var mıydı? ya da hatta gereklidir?

Şimdiden teşekkürler! :)

2 Cevap

Veritabanı sorguları konusunda kötü niyetli kullanıcı girişi içsel bir risk her zaman vardır. Konu ile daha yakından tanımak için bu hızlı SQL Injection wikipedia girişi hızlı bir göz atın.

Eğer paranoyak iseniz, önce sorgulama olmayan herhangi eşleşen karakterleri kaldırmak için preg_replace() kullanarak PHP karakterleri beyaz listeye.

Sen, birkaç istisna dışında, herhangi mysql_real_escape_string() kullanarak gerektiğini ve tüm kullanıcı sağlanan değişkenleri sorguda kullanılan. İstisnaları kullanarak typecasting yapabilirsiniz ondalık değerler (int), (float), vb dahil

Sürece girdi metninin sunulmasından sonra başka sayfada arama metnini görüntülemek için javascript kullanarak değil gibi, sen cross-site scripting (XSS) önleme konusunda bir şey yapmak gerekmez.

Anladığım kadarıyla, sen autocomplete pattern bahsediyoruz.

Web uygulamaları için, bu en çok AJAX ile elde edilir. SQL Injection, paket koklama, vb - AJAX sadece out-of-dönüş HTTP mesajlaşma beri, AJAX istekleri ile gönderilen verilerin başka bir HTTP isteği içerik tüm aynı tuzaklar ve güvenlik açıkları tabidir

Yani evet, definitely backend uygun güvenlik önlemlerini uygulamak istiyorum.

Bu sorunuza cevap oldu mu?