How To

[TR] URL Fonksiyonları (Web URL Encoding)

[TR] URL Fonksiyonları (Web URL Encoding)

 

Merhabalar, bugün sizlerle URL Fonksiyonları’nın kullanımını ve PHP’de nasıl oluşturulduğunu göreceğiz.

Uniform Resource Loader Ne Anlama Gelir?

URL Terimi tarayıcıda site adresinin belirtilmesi için kullanılan Resource Loader olarak tanımlanabilir. URL, farklı yöntemler ile oluşturulur. Kaynak sitede link (adres) belirtir.

Kısaca URL oluşturmak için kullanılan temel kurallar;

1) Değişken içerisindeki değerler kısaca ‘-_.’ hariç sayısal olmayan bütün karakterler yüzde (%) olarak,

2) Boşluklar ise artı (+) olarak değişime uğrar,

3) On altılık rakamlar sistem üzerinde etkilidir.

 

HTML Form Encoded Kullanımı

application/x-www-form-urlencoded >> enctype URL Kod Form

<form action="/urlencoded?firstname=pwn&lastname=sloth" method="POST" enctype="application/x-www-form-urlencoded">
    <input type="text" name="username" value="pwnlab.me"/>
    <input type="text" name="password" value="pwnlab.me"/>
    <input type="submit" value="Submit" />
</form>

Yukarıda görülebileceği gibi html ile form oluşturduk. Bu form’da input type kullanarak text’leri “pwnlab.me” value’si ile usurname ve password olarak atadım.

Ayrıca verilerimiz için method’u POST olarak ayarladım. (Local Host için çok önemli değildir.)

Aynı zamanda enctype olarak application/x-www-form-urlencoded kullanarak file içerisinde entype türünü ayarladık.

urlencoded?firstname=sid&lastname=sloth

Sorgu için parametrelerimizi URL’de üste bulunan şekilde ayarlandı. Bu bizim kodumuzda form action kısmında belirttiğimiz kısımdır.

Sonuç olarak kod betiğimiz aşağıdaki şekilde.

application/x-www-form-urlencoded-code

 

File kısmında kodlarımızı anlatılan şekilde ayarladıktan sonra, Dev Tools aracılığıyla Network-Request-Headers kısmından Content Type incelenebilir.

application-x-www-form-urlencoded

HTML Form bu sayede application/x-www-form-urlencoded olarak URL Encoded şekilde incelenebilir. URL Encode bize + – %20 (-) gibi operatörler ve url encode bilgileri sağlıyor.

 

HTML Multipart Form Encoded Kullanımı

multipart/form-data >> Enctype Multipart Forms

<!DOCTYPE html>
<html>
<head>
<title>Pwnlab.me - URL</title>
</head>
<body>

<form action="/urlencoded?firstname=pwn&lastname=sloth" method="POST" enctype="multipart/form-data"> 
<input type="text" name="username" value="pwnlab.me"/>

<input type="text" name="password" value="pwnlab.me"/> <input type="submit" value="Submit" /> </form>

</body>
</html>

Multipart Formlar genel olarak form-encoded formlara göre daha çok tercih edilir. Multipart formlar sayesinde kullanıcıların file upload gerçekleştirebileceği sistemler kurulabilir. Bu yüzden Multipart Forms popülerdir.

Biz application/x-www-form-urlencoded formlar’da kullandığımız kod betiği ile üzerinden gideceğiz. Sadece entype türünü multipart/form-data olarak değiştirerek inceleyebiliriz.

multipart-form-data-code

Herhangi bir editör ve server aracılığı ile aynı işlemi yapabiliriz. Tüm bu işlemlerden sonra ben yine locolhost kullanacağım.

Aşağıdaki şekilde Dev Tools aracılığı ile Network-Request-Headers kısmından Content Type inceleyebiliriz.

multipart-form-data

Görebileceğiniz üzere Content-Type’da istediğimize ulaşabildik.

Content-Disposition

Yukarıdaki betik ile Multipart Form Boundary üzerinde edit yapabiliriz.

 

PHP Üzerinde URL Encoding – URL Fonksiyonları Kullanımı

 

Konumuzun üst kısmında HTML içerisinde Form’larda nasıl URL Encoding yapılacağını gördük.

Şimdi ise PHP’de URL Encoding nasıl yapılıyor bunu görelim. Bunun için bir PHP Dosyası oluşturarak, fonksiyonlar üzerinden tanımamız gereklidir.

urlencode() Fonksiyonu ve Kullanımı

GET methodu yardımıyla gönderdiğimiz veriler bize otomize olarak urlencode() ile dönmektedir. URL Encoding işleminden bahsetmiştik bu yüzden direkt kullanımına ve anlatımına geçebiliriz.

Aşağıda basit bir kullanımı ile anlamak kolay. En basit yöntemi ile urlencode() aşağıdaki şekilde kullanılabilir.

<?php

$pwnlab = "Pwnlab ME URL Encode";
echo urlencode($pwnlab);

?>

Bu kullanımda $pwnlab değişkenimize atanan “Pwnlab ME Url Encode” değeri ile urlencode() kullanarak sayfada PHP URL Encoding işlemini anlayabiliriz.

urlencode()

Aynı şekilde kodun localhost üzerinde çıktısı;

urlencode-local

Şeklinde olacaktır. Bahsettiğimiz operatörler aracılığıyla urlencode() fonksiyonumuz değeri işleme aldı.

 

base64_encode() Fonksiyonu ve Kullanımı

Belirtilen veriye URL üzerinde Base64 kodlaması, şifrelemesi uygulanmasını sağlar ve normal veriden daha fazla yer kaplar. Belirli sebeplerle URL üzerinde veride gizleme yapılmak istenebilir. Bu durumda base64_encode() fonksiyonu kullanılır. (Example: input ve footer)

<?php

$pwnlab = 'Pwnlab';
$base64_encode = base64_encode($pwnlab);
echo $base64_encode;

?>

Aynı şekilde kod editöründe aşağıdaki şekilde olmalıdır.

base64_encode()

Ayrıca localhost ile bahsedilen çıktıyı görüntülersek;

base64_encode-local

UHdubGFi şeklinde bir çıktı alacağız. Bu değer bizim $pwnlab değişkenimizin base64_encode() fonksiyonu ile harmanlanmış halidir.

 

get_headers() Fonksiyonu ve Kullanımı

Gönderilen istekle tüm Headers değerlerini, başlıkları çıktı olarak görüntülememizi sağlar.

Kullanmak için aşağıdaki kod betiğini basit şekilde deneyebiliriz.

<?php 

$pwnlab = 'https://pwnlab.me/'; 
echo "<pre>"; 

print_r(get_headers($pwnlab)); 

?>

Kodumuzda genel olarak print_r ile tüm headers değerlerimizi elde ettikten sonra ekrana yazdırdım.

Kodumuz üsteki şekilde editöre aktarılmalıdır.

get_headers()-code

Aynı zamanda çıktımız ise aşağıdaki şekilde olacaktır.

get_headers()-local

 

get_meta_tags() Fonksiyonu ve Kullanımı

URL’de HTML için <head></head> tag’ının arasında bulunmakta olan meta verilerini get_meta_tags() fonksiyonu sayesinde elde edebiliriz.

<?php

$pwnlab = get_meta_tags('https://pwnlab.me/');
echo "<pre>";
print_r($pwnlab);

?>

Aşağıdaki şekilde IDE üzerinde kullanabiliriz.

get_meta_tags()-code

Aynı şekilde localhost üzerinden görüntülenmesi de aşağıdaki şekilde sağlanabilir.

get_meta_tags()

 

http_build_query() Fonksiyonu ve Kullanımı

Bir dizi oluşturarak basit şekilde http_build_query() sayesinde belirtilen niteliklerde arama, sorgu yapabiliriz.

Aşağıdaki kullanım ile gösterilebilir.

http_build_query()-code
http_build_query()

PHP Üzerinde URL Fonksiyonlarımızı gördük. PHP ve HTML’de URL İşlemleri temel olarak anlatılan şekilde işliyor. Basit mantıklarla anlatımı kolaylaştırmaya çalıştık. Siz kullanım yaparken kendi projelerinize uygulayabilirsiniz.

 

JavaScript URL Encoding İşlemleri ve Kullanımı

PHP ve HTML üzerinde olduğu gibi JavaScript’de de URL Encode mekanizmaları vardır. Bu kullanımı ben;

https://www.w3schools.com/jsref/jsref_encodeuri.asp

Sitesinden örnek alarak yapacağım. Bu konuda daha detaylı bilgi için sizlerde göz atabilirsiniz.

<!DOCTYPE html>
<html>
<body>

<p>Click the button to encode a URI.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
var uri = "my test.asp?name=ståle&car=saab";
var res = encodeURI(uri);
document.getElementById("demo").innerHTML = res;
}
</script>

</body>
</html>

Alıntı yaptığımız kodu aşağıdaki şekilde IDE’ye aktarabiliriz.

JavaScript URL Encoded-code

Ayrıca aşağıdaki şekilde localhost üzerinden sonuç olarak çıktıya da bakabiliriz.

JavaScript URL Encoded

 

URL Encode ve URL Fonksiyonları hakkında anlatacaklarım buraya kadardı, okuduğunuz için teşekkürler. Esenlikler diliyorum.

 

 

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu