2010-11-29 22 views
13

OR 1# gibi bir şeyin mysql enjeksiyonu bağlamında ne anlama geldiğini biliyor mu?# sql'de ne anlama gelir?

+2

* # 'sembolünüzde * İngilizce olan birkaç isim vardır (sayı, oktothorpe, hex, hash, sharp) * Google * – BoltClock

+0

:) Tamamen alakasız sayfaları bulmama yardımcı olduğunuz için teşekkürler! her ciddiyetle, ben sordum ve sadece İngiliz sterlini sayfalar var önce mysql pound sembolü, vb için yaptım, – munchybunch

+4

İronik olarak, 'mysql hash sembol' ve ikinci sonucu için 'mysql octothorpe' için arama eğer bu şimdi en iyi sonuç . – munchybunch

cevap

31

Bu, MySQL'in satır yorum sınırlayıcısının sürümüdür. Standart SQL'de, satır yorum sınırlayıcısı --'dur. Yani SQL enjeksiyonu bağlamında

-- This is a standard SQL comment. 
# This is a MySQL comment. 

, saldırgan MySQL kullanıyorsanız biliyorsa o MySQL # arkasında ne olursa olsun göz ardı edip sadece şeyler yürütmeye neden aniden kötü niyetli SQL deyimi sonlandırmak için kullanabilir Bundan önce gelir. Bununla birlikte, bu yalnızca tek satırlı SQL ifadelerine karşı etkilidir. İşte bir örnek:

Girdi:

Adı: fake' OR 1#
Parola: pass

Sonuç SQL:

SELECT * FROM users WHERE username = 'fake' OR 1#' AND password = 'pass' 

, bu şekilde yürütülür her döndürür satır:

SELECT * FROM users WHERE username = 'fake' OR 1 
1

Bu, yorumun başlangıcıdır. Bundan sonra, çözümleyici tarafından herhangi bir şey atlanacağı anlamına gelir.

+1

Yanıtı açıklığa kavuşturmak için, AYNI HATTINDA ... – Darbio

+1

@JD: a-ha, sorgularımızda daha fazla satıra ihtiyacımız olan sql-enjeksiyonlarına karşı korumak için ironi) ;-) – zerkms

İlgili konular