Ben sql enjeksiyon veya xss savunmasız değilim bu yüzden benim sitenin güvenli çalışıyorum.
İşte benim kod:
//here's the form (abbreviated)
<form>
<label for="first_name" class="styled">First Name:</label>
<input type="text" id="first_name" name="first_name" value="<?php if (!empty($first_name)) echo $first_name; ?>" /><br />
//submit button etc
</form>
if (isset($_POST['submit'])) {
//gets rid of extra whitesapce and escapes
$first_name = mysqli_real_escape_string($dbc, trim($_POST['first_name']));
//check if $first_name is a string
if(!is_string($first_name)
{
echo "not string";
}
//then insert into the database.
.......
}
mysqli_real_escape_string
: Ben bu fonksiyon \ n \ r gibi bazı harfleri kaçar olduğunu biliyorum, bu yüzden veri DBC içine girilen aldığında, önümüzdeki tüm kaçtı harfleri '\' olurdu?
Bu komut en sql enjeksiyonu önlemek için yeterli olacak mı? sadece kaçan ve veri bir dize olup olmadığını kontrol. (Fiyatlar koyarak kullanıcıları gibi) tamsayılar değerleri için, ben sadece:
is_numeric()
.Nasıl kullanmalıyım
htmlspecialchars
? Kullanıcı verilerini yankılanan ve görüntüleme sadece bunu kullanmalı mıyım? Bir veritabanına veri eklerken ya da ben de bu kullanmalıyım?Ne zaman
strip_tags
kullanmalı veyahtmlspecialchars
?
Tüm bu fonksiyonları ile So:
if (isset($_POST['submit'])) {
//gets rid of extra whitesapce and escapes
$first_name = mysqli_real_escape_string($dbc, trim($_POST['first_name']));
//check if $first_name is a string
if(!is_string($first_name)
{
echo "not string";
}
//gets rid of any <,>,&
htmlspecialchars($first_name);
//strips any tags with the first name
strip_tags($first_name)
//then insert into the database.
.......
}
Hangi fonksiyonlar sql enjeksiyon için kullanmak gerektiğini ve hangilerinin ben XSS için kullanmak gerekir?
Bir kullanıcı bana karşı komut xss ekleyebilirsiniz? Ne zaman bir form var mı?