Güvenlik Kütüphanesi


    × Bunları biliyor muydunuz?
"Konsol ile ZN Framework içerisinde bulunan kütüphane, kontrolcü, model, komut ve fonksiyon çalıştırılabilir."


Güvenlik açıklarına yönelik oluşturulmuş kütüphanedir. 2 adet kütüphaneden oluşmaktadır; Security ve Secure. Özellikle çapraz script, enjeksiyon gibi risk teşkil edecek kullanımları izole etmek için oluşturulmuştur. Hiç bir güvenlik sistemi gibi bizde %100 güvenlik garantisi sağlayamayız. Ancak genel olarak yüksek düzeyde güvenlik sağlanmıştır.

 

 

# Kurulum


ZN SE ve ZN CE dağıtımları için terminal kurulum komutu.

↓ composer require znframework/package-security

 

 

# Yöntemler


Void CSRFToken(String $uri = NULL, String $type = 'post')
Void CSRFPost(String $uri = NULL)
Void CSRFGet(String $uri = NULL)
String ncEncode(String $string, Mixed $badWords, Mixed $changeChar)
String xssEncode(String $string)
String injectionEncode(String $string)
String injectionDecode(String $string)
String htmlEncode(String $string, String $type = 'quotes', String $encoding = 'utf-8')
String htmlDecode(String $string, String $type = 'quotes')
String phpTagEncode(String $str)
String phpTagDecode(String $str)
String scriptTagEncode(String $str)
String scriptTagDecode(String $str)
String nailEncode(String $str)
String nailDecode(String $str)
String foreignCharEncode(String $str)
String foreignCharDecode(String $str)
String escapeStringEncode(String $data)
String escapeStringDecode(String $data)
This data(String $data)
String get(Void)

 

 

# CSRFToken / CSRFPost (ZN >= 4.3.2)


CSRF ataklarına karşı rasgele veri üretmek için kullanılır. POST datalarını kontrol eder.

Parametreler

String $type = 'post' Post verilerini kontrol eder. Kullanılabilir Seçenekler: post, get
Return Void

Kullanımı

Security::CSRFToken();
Security::CSRFToken('get');
Security::CSRFGet();

 

 

# CSRFGet (ZN >= 4.3.2)


CSRF ataklarına karşı rasgele veri üretmek için kullanılır. GET datalarını kontrol eder.

Parametreler

Void
Return Void

Kullanımı

Security::CSRFGet();

 

 

# NcEncode (ZN >= 0.0.1)


Kötü içerikli olduğunu düşündüğünüz ifadeleri değiştirmek için kullanılır.

Parametreler

String $data Veri.
Mixed $badChars Kötü içerikli karakter veya karakter grupları.
Mixed $badChars Kötü içerikli karakterlerin yerini alacak olan değer.
Return String

Kullanımlar

echo Security::ncEncode('Hello or Goodbye', 'or', '[xxx]');
Hello [xxx] Goodbye

2. ve 3. parametre dizi türü veride içerebilir. Böylece birden fazla karakter grubunu aynı anda izole edebilirsiniz.

echo Security::ncEncode('Hello or Goodbye', ['Hello', 'Goodbye'], ['[xxx]', '[yyy]']);
[xxx] or [yyy]

 

 

# XssEncode (ZN >= 0.0.1)


Genel olarak script kodlardan kaynaklı çapraz enjeksiyonları engellemek için geliştirilmiştir.

Parametreler

String $data Veri.
Return String

Kullanımlar

echo Security::xssEncode('<script>alert(1);script>');
&#60;script&#62;alert(1);&#60;/script&#62;

 

 

# InjectionEncode / InjectionDecode (ZN >= 0.0.1)


SQL enjesiyonlarına karşı oluşturulmuş yöntemdir. Enjeksiyonlar genellikle backslash sembolü ile yapılır.

Parametreler

String $data Veri.
Return String

Kullanımlar

$data = Security::injectionEncode('ZN" Framework');
echo $data;
ZN[blackslash]" Framework

Bu dönüşümü eski haline getirmek için;

echo Security::injectionDecode($data);
ZN" Framework

gibi kullanılır.

 

 

# HtmlEncode / HtmlDecode (ZN >= 0.0.1)


HTML karakterleri olan <, > ve tırnak işaretlerini numerik koda çevirir.

Parametreler

String $data Veri.
Mixed $type = 'quotes' Çevrim türü.
Seçenekler quotes, nonquotes, compat
Mixed $encoding = 'utf-8' Kodlama türü.
Return String

Kullanımlar

$data = Security::htmlEncode('<b>ZN4</b>');
echo $data;
&lt;b&gt;ZN4&lt;/b&gt;

Bu dönüşümü eski haline getirmek için;

echo Security::htmlDecode($data);
<b>ZN4</b>

gibi kullanılır.

 

 

# PhpTagEncode / PhpTagDecode (ZN >= 0.0.1)


PHP taglarını numerik koda çevirir.

Parametreler

String $data Veri.
Return String

Kullanımlar

$data = Security::phpTagEncode('<?php echo 1;');
echo $data;
&#60;&#63;php echo 1;

Bu dönüşümü eski haline getirmek için;

echo Security::phpTagDecode($data);
<?php echo 1;

gibi kullanılır.

 

 

# ScriptTagEncode / ScriptTagDecode (ZN >= 3.0.7)


Script taglarını numerik koda çevirir.

Parametreler

String $data Veri.
Return String

Kullanımlar

$data = Security::scriptTagEncode('<script>alert(1);</script>');
echo $data;
&#60;script&#62;alert(1);&#60;/script&#62;

Bu dönüşümü eski haline getirmek için;

echo Security::scriptTagDecode($data);
<script>alert(1);</script>

gibi kullanılır.

 

 

# NailEncode / NailDecode (ZN >= 0.0.1)


Tırnak işaretlerini numerik koda çevirir.

Parametreler

String $data Veri.
Return String

Kullanımlar

$data = Security::nailEncode('ZN" Framework');
echo $data;
ZN&#34; Framework

Dönüşümü eski haline getirmek için;

echo Security::nailDecode($data);
ZN" Framework

gibi kullanılır.

 

 

# ForeignCharEncode / ForeignCharDecode (ZN >= 2.0.0)


Yabancı karakterleri numerik koda çevirir.

Parametreler

String $data Veri.
Return String

Kullanımlar

$data = Security::foreignCharEncode('Àŕç');
echo $data;
&#192;&#341;&#231;

Dönüşümü eski haline getirmek için;

echo Security::foreignCharDecode($data);
Àŕç

gibi kullanılır.

 

 

# EscapeStringEncode / # EscapeStringDecode (ZN >= 2.0.0)


Kullanımları injectionEncode() ve injectionDecode() yöntemleri ile aynıdır.

Parametreler

String $data Veri.
Return String

 

 

# Data (ZN >= 4.0.23)


Secure:: kütüphanesi Security:: kütüphanesinin yöntemlerini kullanan bir filtreleme kütüphanesidir. Güvenlik süzgecinden geçecek veriyi belirtmek için kullanılır.

Parametreler

String $data Veri.
Return This

Kullanımlar

echo Secure::data('<?php echo "This is"; ?> <b>example code!</b>')
           ->phpTagEncode()
           ->htmlTagEncode()
           ->get();
&amp;#60;&amp;#63;php echo &quot;This is&quot; &amp;#63;&amp;#62; &lt;b&gt;example code!&lt;/b&gt;

 

 

# Get (ZN >= 4.0.23)


Filtrelemeyi bitirmek için kullanılan yöntemdir.

Parametreler

Void
Return String

Kullanımlar

echo Secure::data('<?php echo "This is"; ?> <b>example code!</b>')
           ->phpTagEncode()
           ->htmlTagEncode()
           ->injectionEncode()
           ->get();
&amp;#60;&amp;#63;php echo &quot;This is&quot; &amp;#63;&amp;#62; &lt;b&gt;example code!&lt;/b&gt;