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?
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.
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.