Krutzo 1
Krutzo
shrpnl 1
shrpnl
Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

PHP - Girişi Temizle

Carissa

Administrator
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye Turkmmo Discord Nitro Booster
Admin
VIP Üye
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
Ticaret - 0%
0   0   0

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!

how-to-filter-input-safely-with-php.jpg


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:

KarakterDeğ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.NoSabit ve Açıklama
1ENT_COMPAT
Çift tırnak işaretlerini dönüştürüp tek tırnak işaretlerini olduğu gibi bırakacaktır.
2ENT_QUOTES
Hem çift hem de tek tırnak işaretlerini dönüştürecektir.
3ENT_NOQUOTES
Hem çift hem de tek tırnak işaretleri dönüştürülmeden bırakılacak.
4ENT_IGNORE
boş bir dize döndürmek yerine geçersiz kod birimi dizilerini atın.
5ENT_SUBSTITUTE
Geçersiz kod birimi dizilerini Unicode Değiştirme Karakteri U+FFFD (UTF-8) veya � ile değiştirin
6ENT_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.
7ENT_HTML401
Kodu HTML 4.01 olarak işleyin.
8ENT_XML1
Kodu XML olarak işle 1.
9ENT_XHTML
Kodu XHTML olarak işle.
10ENT_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ı)
Kullanıcı girdisini bir veritabanında saklıyorsanız ve SQL enjeksiyon saldırılarını önlemek istiyorsanız bu fonksiyonu kullanın.

Ö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.NoKimlik ve Açıklama
1FILTER_SANITIZE_EMAIL
Harfler, rakamlar ve !#$%&'*+-=?^_`{|}~@.[] dışındaki tüm karakterleri kaldırın.
2FILTER_SANITIZE_ENCODED
URL kodlama dizesi, isteğe bağlı olarak özel karakterleri çıkarın veya kodlayın.
3FILTER_SANITIZE_ADD_SLASHES
addslashes() uygulayın. (PHP 7.3.0'dan itibaren kullanılabilir).
4FILTER_SANITIZE_NUMBER_FLOAT
Rakamlar, +- ve isteğe bağlı olarak .,eE dışındaki tüm karakterleri kaldırın.
5FILTER_SANITIZE_NUMBER_INT
Rakamlar, artı ve eksi işaretleri hariç tüm karakterleri kaldırın.
6FILTER_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.
7FILTER_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.
8FILTER_SANITIZE_URL
Harfler, rakamlar ve $-_.+!*'(),{}|\\^~[]`<>#%";/?: @&= dışındaki tüm karakterleri kaldırın.
9FILTER_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:

 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst