Kullanıcı girişi kontrol ve mysql enjeksiyonu önlemek için yöntemler nelerdir?

3 Cevap php

"Biz, kullanıcının giriş asla güvenme", bu ben web üzerinde bir yerde okumak budur.

Şu anda onların kullanıcı adı ve e-posta girmek, bir web formu var. Kullanıcı adınızı alanda, nasıl kontrol etmek, denetlemek ve mysql enjeksiyonu önlemek? Şu anda, benim php komut Ben sadece bunu:

$username = mysql_real_escape_string($_POST['username']); // prevent mysql injection

Ben bazı dersler gördüm, mysql_real_escape_string işlevi önce, onlar vb Htmlentities, gibi diğer fonksiyonları arasında (ne olduğunu hatırlamadığını, ve ben şimdi buldum yaktık, iç geçiriyorum)

Bu mysql_real_escape_string önce sözde "htmlentitiesi" fonksiyonu dahil etmek bir zorunluluktur?

Genellikle kullanıcının giriş verilerini kontrol etmek için kullandığınız yöntemi nedir?

Oh ya, diğer bazı fonksiyonlar:

stripslashes();
serialize();
urlencode();

I bu içermelidir?

3 Cevap

Haklısınız, kadar veritabanına veri koyarak söz konusu olduğunda bunu yapıyoruz. SQL injection saldırılarına karşı korumalı ediyoruz.

htmlentities() ve htmlspecialchars() SQL enjeksiyon saldırıları ile ilgili değildir; Onlar içine bakmak gerekir bir bütün diğer konudur, ve web üzerinden geri kullanıcı girişi görüntülenirken eğer alakalı bir konudur XSS saldırılara, ilgili konum.

Ayrıca prepared statements daha fazla saldırı yüzeyini azaltır, (SQL Server için parametreli sorgular eşdeğer düşünmek) kullanılarak bakmak olabilir.

gibi kaos @ dedi hakkıdır

aynı zamanda sizin için Paramaters kaçacaktır pdo gibi, veritabanı soyutlama katmanları kullanabilirsiniz