- Katılım
- 2 Mar 2015
- Konular
- 59,189
- Mesajlar
- 88,439
- Çözüm
- 109
- Online süresi
- 4mo 16d
- Reaksiyon Skoru
- 14,280
- Altın Konu
- 2,398
- TM Yaşı
- 11 Yıl 3 Ay 6 Gün
- Başarım Puanı
- 1,051
- MmoLira
- 695,092
- DevLira
- 234
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
PHP'de, giriş verilerinin sunucu tarafı kodu tarafından işlenmeden önce istenmeyen karakterlerin kaldırılmasıyla düzgün bir şekilde temizlenmesinin sağlanması önemlidir. Genellikle kullanıcılar verilerini bir HTML formu aracılığıyla bir PHP web uygulamasına girerler. Form verileri herhangi bir istenmeyen karakter içeriyorsa, zararlı olabilir, bu nedenle uygun bir temizleme işlemi gerçekleştirilmelidir.
Giriş temizliği PHP'de aşağıdaki fonksiyonlardan bir veya birkaçının yardımıyla yapılabilir.
htmlspecialchars() Fonksiyonu
Bu fonksiyon özel karakterleri HTML varlıklarına dönüştürür.htmlspecialchars(
string $string,
int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,
?string $encoding = null,
bool $double_encode = true
): string
HTML'de belirli karakterlerin özel bir önemi vardır. Bu htmlspecialchars() fonksiyonu HTML varlıklarındaki özel karakterleri kodlamak için kullanılır. Bu, kullanıcı girdisini HTML olarak görüntülemek ve betik enjeksiyon saldırılarını önlemek istediğinizde faydalıdır.
Aşağıdaki özel karakterler gösterildiği gibi çevrilir:
| Karakter | Değiştirildi |
|---|---|
| & (ve işareti) | ve |
| " (çift tırnak) | ", ENT_NOQUOTES ayarlanmadığı sürece |
| ' (tek tırnak işareti) | ' ( ENT_HTML401 için ) veya ' ( ENT_XML1, ENT_XHTML veya ENT_HTML5 için ), ancak yalnızca ENT_QUOTES ayarlandığında |
| < (daha az) | < |
| > (büyüktür) | > |
Bayrak Sabitleri
Bayrak parametresi, tırnak işaretlerinin, geçersiz kod birimi dizilerinin ve kullanılan belge türünün nasıl işleneceğini belirten aşağıdaki bayraklardan bir veya daha fazlasının bit maskesidir.| Sr.No | Sabit ve Açıklama |
|---|---|
| 1 | ENT_COMPAT Çift tırnak işaretlerini dönüştürüp tek tırnak işaretlerini olduğu gibi bırakacaktır. |
| 2 | ENT_QUOTES Hem çift hem de tek tırnak işaretlerini dönüştürecektir. |
| 3 | ENT_NOQUOTES Hem çift hem de tek tırnak işaretleri dönüştürülmeden bırakılacak. |
| 4 | ENT_IGNORE boş bir dize döndürmek yerine geçersiz kod birimi dizilerini atın. |
| 5 | ENT_SUBSTITUTE Geçersiz kod birimi dizilerini Unicode Değiştirme Karakteri U+FFFD (UTF-8) veya � ile değiştirin |
| 6 | ENT_DISALLOWED Belirtilen belge türü için geçersiz kod noktalarını, olduğu gibi bırakmak yerine Unicode Değiştirme Karakteri U+FFFD (UTF-8) veya � (aksi takdirde) ile değiştirin. Bu yararlı olabilir. |
| 7 | ENT_HTML401 Kodu HTML 4.01 olarak işleyin. |
| 8 | ENT_XML1 Kodu XML olarak işle 1. |
| 9 | ENT_XHTML Kodu XHTML olarak işle. |
| 10 | ENT_HTML5 Kodu HTML 5 olarak işleyin. |
Örnek
Aşağıdaki örneğe bir göz atın.
PHP:
<?php
$str = 'Welcome To "PHP Tutorial" by <b>TutorialsPoint</b>';
echo htmlspecialchars($str);
?>
Aşağıdaki çıktıyı üretecektir:
Welcome To "PHP Tutorial" by <b>TutorialsPoint</b>
strip_tags() Fonksiyonu
strip_tags() fonksiyonu verilen bir dizgeden tüm HTML ve PHP etiketlerini kaldırır.strip_tags(string $string, array|string|null $allowed_tags = null): string
Bu fonksiyon, kullanıcı girdisinin potansiyel olarak kötü amaçlı etiketler içermediğinden emin olmak istediğinizde çok kullanışlıdır.
allowed_tags parametresi, soyulmaması gereken etiketleri belirtmek için isteğe bağlı ikinci bir parametredir. Bunlar ya dize olarak ya da bir dizi olarak verilir.
Örnek
Aşağıdaki örneğe bir göz atın.
PHP:
<?php
$text = '<p>Hello World</p><!-- Comment -->
<a href="/test.html">Click Here</a>';
echo strip_tags($text);
echo "\n";
// Allow <p> and <a>
echo strip_tags($text, '<p><a>');
?>
Aşağıdaki çıktıyı üretecektir:
Hello World
Click Here
Hello World
Click Here
addslashes() Fonksiyonu
addslashes() fonksiyonu bir dizeye ters eğik çizgi ekler.addslashes(string $string): string
İşlev, kaçırılması gereken karakterlerden önce ters eğik çizgiler eklenmiş bir dize döndürür. Bu karakterler:
- Tek Tırnak (')
- Çift Tırnak (")
- Ters eğik çizgi (\)
- NUL (NUL Baytı)
Örnek
Aşağıdaki örneğe bir göz atın.
PHP:
<?php
$text = "Newton's Laws";
$str = addslashes($text);
// prints the escaped string
echo($str);
?>
Aşağıdaki çıktıyı üretecektir:
Newton\'s Laws
filter_var() Fonksiyonu
Belirli bir filtre bayrağının yardımıyla, filter_var() fonksiyonunu kullanarak kullanıcı girdisini temizleyebilirsiniz.filter_var(mixed $value, int $filter =
FILTER_DEFAULT, array|int $options = 0): mixed
$value parametresi, değerinin temizlenmesi gereken bir değişkendir. $filter parametresi, önceden tanımlanmış filtre sabitlerinden herhangi biridir.
| Sr.No | Kimlik ve Açıklama |
|---|---|
| 1 | FILTER_SANITIZE_EMAIL Harfler, rakamlar ve !#$%&'*+-=?^_`{|}~@.[] dışındaki tüm karakterleri kaldırın. |
| 2 | FILTER_SANITIZE_ENCODED URL kodlama dizesi, isteğe bağlı olarak özel karakterleri çıkarın veya kodlayın. |
| 3 | FILTER_SANITIZE_ADD_SLASHES addslashes() uygulayın. (PHP 7.3.0'dan itibaren kullanılabilir). |
| 4 | FILTER_SANITIZE_NUMBER_FLOAT Rakamlar, +- ve isteğe bağlı olarak .,eE dışındaki tüm karakterleri kaldırın. |
| 5 | FILTER_SANITIZE_NUMBER_INT Rakamlar, artı ve eksi işaretleri hariç tüm karakterleri kaldırın. |
| 6 | FILTER_SANITIZE_SPECIAL_CHARS HTML kodlaması '"<>& ve ASCII değeri 32'den küçük olan karakterler, isteğe bağlı olarak diğer özel karakterleri ayıklayın veya kodlayın. |
| 7 | FILTER_SANITIZE_FULL_SPECIAL_CHARS ENT_QUOTES ayarlıyken htmlspecialchars()'ı çağırmaya eşdeğerdir . Kodlama tırnak işaretleri FILTER_FLAG_NO_ ENCODE_QUOTES ayarlanarak devre dışı bırakılabilir. |
| 8 | FILTER_SANITIZE_URL Harfler, rakamlar ve $-_.+!*'(),{}|\\^~[]`<>#%";/?: @&= dışındaki tüm karakterleri kaldırın. |
| 9 | FILTER_UNSAFE_RAW |
Örnek
Aşağıdaki kod, E-posta verilerinizi nasıl temizleyeceğinizi gösterir.
PHP:
<?php
$a = 'abc def@xyz.com';
$sa = filter_var($a, FILTER_SANITIZE_EMAIL);
echo "$sa";
?>
Aşağıdaki çıktıyı üretecektir:
Örnek
Aşağıdaki kod, URL'leri nasıl temizleyeceğinizi gösterir.
PHP:
<?php
$a = "http://example.c o m";
$sa = filter_var($a, FILTER_SANITIZE_URL);
echo "$sa";
?>
Aşağıdaki çıktıyı üretecektir:
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.

