SORU
20 Mart 2014, PERŞEMBE


Eğer bir açılan kullanırsam SQL enjeksiyon karşı korumak için var mı?

HİÇ bir formdan kullanıcı girişi, esas olarak, SQL enjeksiyon olmasından dolayı güven gerektiğini anlıyorum.

Ancak, bu da tek bir giriş açılır(ler) (aşağıya bakınız) bulunduğu bir form için de geçerli mi?

Ben tasarrufu $_POST['size'] bir Oturum daha sonra kullanılan boyunca siteye sorgu çeşitli veritabanları (mysqli Select sorgusu) ve herhangi bir SQL enjeksiyon kesinlikle zarar (muhtemelen bırak onları.

Veritabanları, sadece açılan sorgu için yazılan kullanıcı giriş(ler) için alan yok.

<form action="welcome.php" method="post">
<select name="size">
  <option value="All">Select Size</option> 
  <option value="Large">Large</option>
  <option value="Medium">Medium</option>
  <option value="Small">Small</option>
</select>
<input type="submit">
</form>

CEVAP
21 Mart 2014, Cuma


Evet, bu karşı korumak gerekir.

Firefox'un geliştirici konsolunu kullanarak neden göstereyim

i've edited one of the values in the dropdown to be a drop table statement

Eğer bu verileri Temizle yok eğer doğru değilse, veritabanı yok olacak. (Bu tamamen geçerli bir SQL deyimi olmayabilir, ama genelinde benim açımdan aldım umarım.)

Senin açılan kullanılabilir sınırlı ettin diyeanlamına gelmezsunucunuz gönderebilirim veri sınırlı.

Eğer bu daha da kısıtlamak için bekler sayfanızda denesen, benim seçenekleri bu davranışı devre dışı bırakmak, ya da sadece zaten bu form gönderme taklit eden sunucu için özel bir HTTP isteği yer alıyor. Bir araç curl denilen tam olarak bunun için kullanılan, ve ben vardüşünüyorumbu SQL enjeksiyon zaten göndermek için komut şu şekilde: bir şey görünecektir

curl --data "size='); DROP TABLE *; --"  http://www.example.com/profile/save

(Bu tamamen geçerli bir komut curl olmayabilir, ama yine genelinde benim açımdan aldım umarım.)

Yani, tekrar edeyim:

HİÇBİR zaman güven kullanıcı girişi. Her ZAMAN kendinizi koruyun.

Herhangi bir kullanıcı girişi daha güvenli olduğunu düşünmeyin. Eğer bir şekilde bir form veya başka gelirse bile olmayabilecek. Sanki hiç bir SQL enjeksiyon kendinizi korumak vazgeçmek için yeterince güvenilir değildir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • John Lynn

    John Lynn

    8 Ocak 2010
  • PorterRobinsonVEVO

    PorterRobins

    11 Kasım 2013
  • SaMmM123

    SaMmM123

    3 Mayıs 2006