Php ile user agent değiştirmek

Bazen olur ki php ile curl kullanmadan user agent değiştirmek isteriz.Curl ile curlopt_useragent ile kolayca yapabileceğimiz işlemi aslında php ile de kolayca yapabiliriz.

Mesela bazen karşımıza çıkar file_get_contents yaparken user agent kullanmayız verileri çekemeyız.İşte o zaman bu kod işimizi görebilir 🙂

 

<?php
$ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36";
ini_set('user_agent', "$ua");

User agentlere ulaşmak için buraya bakabilirsiniz..

Php ile github api kullanımı

Selamlar arkadaşlar internette dolanıyordum ki ne göreyim! Github api baktım ilk önce birazcık garipsedim github nasıl key vs. oluşturmadan sunuyor diye sonra hemen bir örnek uygulama yapayım dedim…

Öncelikle bu bağlantıdan apiye ulaşabilirsiniz.Emojilerden tutun kullanıcı bilgilerine kadar var.Aşağıda örnek bir uygulama sizi bekliyor.

<?php
// Kullanıcı adını yazıyoruz.
$kadi = "borabozdogan";
// Curl'in gideceği bağlantı
$git = "https://api.github.com/users/{$kadi}";

// Curl parametrelerimizi belirtiyoruzzz.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $git);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_REFERER, "https://google.com.tr");
curl_setopt($ch, CURLOPT_USERAGENT, "Google Bot 1.0");
$bas = curl_exec($ch);

 

// Gelen veriyi json to array yapıyoruz.
$json = json_decode($bas, true);

// İstediğimiz verileri ekrana yazdırıyoruz..
echo "Kullanıcı Adı : $json[login] <br />";
echo "Kullanıcı İd : $json[id] <br />";
echo "Avatar Url : $json[avatar_url] <br />";
echo "Bio : $json[bio] <br />";

Hadi kolay gele..

Kodlarınızı Anlık Önizlemek İstemez Misiniz?

Daha önce bu şekilde projelere tek programlama dilleri için rastlamıştım fakat az önce dolanırken çok daha farklı neredeyse kullanılan tüm programlama dillerini internetten önizleme şeklınde sunan bir proje keşfettim..

Detaylara gelecek olursak bu adrese girip repl.it projesını inceleyebilirsiniz.

Kolay gelsin ,iyi çalışmalar 🙂

Ruby İle MD5 ve SHA1 Şifreleme

Selamlar yavaş yavaş kriptolojiye kaymaya başladım sanırım 😛 Arkadaşlar bildiğiniz gibi tüm yazılım dillerinde md5,sha1 vb. şifreleme için fonksiyonlar var.Ruby ilgilendiğim dillerden birisi ve Türkiye de yeteri kadar kaynak yok.İnsanlar bu sebepten dolayı zorlanıyor ,elimden geldiğince Türkçe kaynak oluşturmaya çalışacağım.

Şifreleme için digest kullanacağız.Peki ya digest nedir? İngilizceden Türkçeye çevrildiğinde özet anlamında.Bizim tabirimizce ise bir paket denilebilir veya class..Bir çok dilde require ,import vb. fonksiyonlar ile içeriye kullanacağımız dosya/paket yapılarını aktarırız.

Md5 şifreleme yaparken aşağıdaki kodu kullanabiliriz.

require 'digest/md5'
parola = '123456'
sifrele = Digest::MD5.hexdigest(parola)
puts sifrele

Gördüğünüz gibi oldukça basit bir şekilde hallettik olayımızı.Hem de syntax yapısı müthiş! Ruby’i işte bundan dolayı çok seviyorum.

Sha1 için aşağıdaki kodları inceleyebilirsiniz.

require 'digest/sha1'
parola = '123456'
sifrele = Digest::SHA1.hexdigest(parola)
puts sifrele

 

 

Php İle Güvenli Parola Şifreleme

Merhabalar arkadaşlar ,php yazılımlar geliştirirken gerek admin panel ,gerek kullanıcılar için oluşturulan parolaların direkt olarak çekilmesi güvenlik problemleri oluşturabilir bizler için.Bunun için password_hash ve password_verify fonksiyonlarını kullanacağız.

Password_hash fonksiyonunda 2 adet farklı işleyiş var , PASSWORD_DEFAULT ve PASSWORD_BCRYPT.Biz bu yazımıda ilk işleyişimizi kullanacağız.

En basitinden hepimiz insanız ,ufak bir sql injection açığında tüm veritabanı aşağıda kolaylıkla indirilebilir.Bu gibi durumlarda bütün parolalar ve erişim için detaylar dışarıya aktarılabilir.

Türkiye de gördüğüm çoğu geliştirici de projeleri köklü olsa bile şifreleme kullanmıyor veya md5,sha1 gibi algoritmalar kullanıyor.Bu algoritmalar doğrudan kırılamaz olsa bile internet üzerinde hazır wordlist checker ile bazen kırılabilmektedir.

İlk etapta  gelen bi veriyi şifreleyelim.

<?php
$parola = "123456";
$sifrele = password_hash("{$parola}", PASSWORD_DEFAULT);
echo $sifrele;
?>

$parola değişkeninine şifrelenecek olan verimi girdim ,genelde kayıt sayfasında bu şekilde işlem yapılır.$parola değişkeni post ile gelen parola olur.Sayfayı her yenilediğinizde farklı hash oluşmasına aldanmayın 🙂 Bu işin doğasında var..

Oluşturulan bir hashı kopyaladım ve bir değişkene aktarıyorum, bu değişken değil de bir veritabanı da olabilir.Bunun bir önemi yok.Doğrulama için password_verify kullanıyoruz.

<?php
$parola = '123456';
$hash = '$2y$10$YfVtZ/gLwmOdl/m6mgo2n.U7wBgvSz1mgC.P2bBpVl9XCgaZJ1fsW';


if (password_verify("{$parola}",$hash)) {
	echo "Doğru";
}else {
	echo "Yanlış";
}
?>

Yukarıda gördüğünüz gibi if ile güzel bir şekilde kontrol yaptırdık ve hash’ın doğru olup olmadığını anladık.

Php İle Dosya Uzantısı Nasıl Bulunur?

Php ile dosya upload yaparken önceden kullanırdım aşağıda vereceğim örneği.Güzel bir örnek çoğu zaman işimizi görecektir..Bu kod ile istenilen dosya türleri veya istenilmeyen dosya türlerini kolayca belirleyebilirsiniz.Ajax kullanarak daha iyi bir şekılde de kullanabilirsiniz 🙂

 

<?php
$dosya = "shell.png.php";
$uzanti = pathinfo($dosya, PATHINFO_EXTENSION);

echo $uzanti;

Ajax Dosyalarına İstek Güvenliği

Ajax bir çok yazılımcı tarafından kullanılan bir teknoloji.Bizlere oldukça yardımcı oluyor ,Türkiye de olan ajax kullanımlarının çoğunda ajax için güvenlik önlemleri alınmıyor bunlarda sistem üzerinde zafiyetlerin oluşmasına sebep oluyor.

Kısaca ajax güvenliği nasıl sağlanır?

Post ettiğimiz ajax dosyası üzerinde gelen isteğin xmlhttprequest olup olmadığını kontrol ettirmeli, sessionlarımızı da kontrol ettirmeliyiz.Hadi bunları da geçenler olacaktır işte o zaman capctha ve bir sessiondan alınabilecek maksimum istek sayısını belirlemeliyiz.Kullandığımız captcha’yı OCR ile geçtiler diyelim ,istek limitlerinde de illaki atak yapan kişi takılacaktır.

Ajax kontrolünü nasıl yapabilirim? (XmlHTTPRequest)

Ajax post ilemi yaparken gönderdiği istek xmlhttprequest olarak geçmektedir ,ben bu istekleri aşağıdaki kod ile ayırırım her zaman.En başarılı sistem budur bana göre ,bazıları http referer ile de kontrol ediyor fakat o çok kolay bir şekilde aşılabilen bir önlemdir.

<?php
error_reporting(E_ALL ^ E_NOTICE); //önemsiz hataları almıyoruz cnms.

if(empty($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')){
//eğer istekler istediğimiz gibi değilse.
header("HTTP/1.0 404 Not Found"); //sahte olarak 404 hatası verdılerım.
exit(); //alttaki işlemleri durdularım!
}

WordPress Beklenmeyen bir çıktı yüzünden çerezler engellendi Hatası

Selamlar arkadaşlar wordpress giriş kısmında biraz düzenleme ilemleri yapmıştım fakat bu hatayı aldığımı fark ettim.Giriş yapamıyordum internette biraz araştırma sonucu hatanın karakter hataları ve wp-login.php dosyasında olan boşluklardan kaynaklandığını öğrendim.

Sorunu çözmek için ilk önce wp-login.php dosyamı indirdim ve karakter setini utf8 olarak ayarladım.Ardından <?php tagının üstünde olan 1 satır boşluğu sildim ve sorun ortadan kalkmıştır 🙂

Php İle Dns Bilgileri Almak

Aslında bayağıdır paylaşım yapmıyordum ,gireyim de az post basayım dedim 🙂 Dns bilgileri bazen işimize yarıyabilir , pek olmasada..

Öncelikle kullandığımız fonksiyonumuzun adı dns_get_record çok bilinen bir fonksiyon değil aslında.Rastladığım bazı kişiler saçma salak botlar ile yapmışlar bu işlemi ,fakat php’nin bize sunduğu hali hazırda cıncık gibi bir fonksiyon var.Örnek kod aşağıda.

 

<?php 
$dns = dns_get_record("borabozdogan.net.tr"); 
print_r($dns); 

?>

Yorumlarınızı eksik etmeyin dostlar.