POST ile mümkün SQL Injection mi?

5 Cevap php

Parametreler GET yoluyla geçirilirse SQL Enjeksiyon mümkündür. Ama aynı zamanda POST aracılığıyla mümkündür. Eğer evet ise, https bunu önleyebilirsiniz?

5 Cevap

Evet, $_POST hem de $_GET, $_COOKIE ve $_REQUEST ile birlikte mümkündür. HTTPS tüm sizi koruyamaz. Sen, seni korumak örneğin mysql_real_escape_string ya da kullanmak için bazı işlevi kullanmak zorunda prepared statements.

All communication from the web browser should be handled as "untrusted". Diğer teknikler yapamazsın güven Ajax, file uploads ve JavaScript form validations (diğerleri) olduğunu. Tüm bu veriler web tarayıcısı doğrudan gelir ve bunları filtrelenmiş veya veri geçerliliği var önce güvenilir olmamalıdır.

Güvenebileceğiniz tek şey $_SESSION, size SADECE $_SESSION değişkenleri içine valide veri koymak şartıyla olduğunu.

Sen, tüm kullanıcı gönderilen verileri kaçış yok yöntemini önemli olmalıdır.

Hayır, bu iki yöntem arasında bir fark yoktur.

Bunu sterilize olmadan SQL ifadelerinde kullanıcı girdileri ile kullandığınızda, SQL enjeksiyonu olur. Bu GET veya POST yoluyla alınan veri atarsam, ya da şifreli eğer değildir. Önemli olan bunu aldıktan sonra, girişi ile ne olduğunu.

Hiçbir şey girişleri sterilize dışında sizi koruyabilir, ve bunu yapmak için sadece tamamen güvenli yolu hazırlanmış deyimleri kullanmaktır. Bu ders güçlük, ama gerçekten hiçbir alternatif var - Eğer bir web sitesi geliştirmek ve size hemen hemen hazır deyimleri kullanmayın çünkü SQL enjeksiyonu tarafından hacklendi eğer bunun için bir programcı olarak ihmalkar.

Ben bugüne kadar bunu yapmanın PHP bulduk basit yolu kullanmaktır Codesense's mysqli wrapper. Çiğ hazırlanmış tablolar ile ilişkili güçlük çok kaldırır düzgün, küçük, sınıf, ben onu kullandım nereye kadar sağlam daha fazla olmuştur.

Bu hazırlanmış SQL düz SQL göre sadece biraz daha güçlük kullanarak, yani gerçekten için hiçbir bahane yoktur.

https burada koruyamam. Eğer filtre girişi (ler)