PHP’de SQL enjeksiyonları nasıl önlenir (PDO)

SQL enjeksiyonu, en yaygın şekilde var olan ve en çok zarar veren web uygulaması güvenlik açıklarından biridir. Neyse ki, hem programlama dilleri hem de RDBMS’lerin kendileri, web uygulaması geliştiricilerine veritabanını güvenli bir şekilde sorgulamanın bir yolunu (parametreli SQL sorguları) sağlamak için gelişti.

SQLi saldırılarından korunmak için parametreli sorgular kullanılır. Parametreli sorguların yazılması ve anlaşılması kolaydır ve bu geliştiriciyi bir ifadedeki gerçek değişkenler için yer tutucuları kullanarak tüm SQL ifadesini önceden tanımlamaya zorlar. Geliştirici SQL ifadesi tanımlandıktan sonra her parametreyi sorguya geçirerek veritabanının SQL komutu ile bir kullanıcı tarafından girilen veriler arasında ayrım yapabilmesini sağlar. SQL komutları bir saldırgan tarafından girilirse, parametreli sorgu girdiyi SQL komutunun aksine bir dize olarak değerlendirir.

Okumaya devam et “PHP’de SQL enjeksiyonları nasıl önlenir (PDO)”

Tillson T3 İndikatörünü PHP ile Yazalım

Tillson T3 indikatörü, T3, Tillson hareketli ortalamaları olarak da bilinir. Bu teknik göstergenin geliştirilmesinin ardındaki düşünce hareketli ortalamalarda bulunabilecek gecikme ve yanlış sinyalleri iyileştirmekti. T3, diğer ortalama alan (SMA, EMA vb) trend indikatörlerine göre daha yumuşak (daha pürüzsüz) ve duyarlı sonuçlar üretir. T3 kullanılarak trend dönüşleri hissedilebilir.

Okumaya devam et “Tillson T3 İndikatörünü PHP ile Yazalım”

İlginç bir PHP arka kapısı

Birkaç yıl önce Genius‘un sayesinde haberdar olduğum aşağıdaki kod hala daha (v7.2.x) çalışmakta. İlginç yanı short_tags etkin olmasa dahi çalışıyor. Daha ilginci ve hakkkında pek bilgi bulamadığım kısmı ise dinamik olarak yaratılan ve veri (data) olarak ele alınması gereken bir yapının PHP tarafından bir metod (function) olarak değerlendirilmesi ve çalıştırılması.

Okumaya devam et “İlginç bir PHP arka kapısı”

Zararlı bir PHP kodu (PHP Malware)

Eski bir wordpress plug’innin neden olduğu sızmada aşağıdaki kod php betiklerinin başına eklenmiş.

Okumaya devam et “Zararlı bir PHP kodu (PHP Malware)”

PHP: Single File Audio Player

Tek Dosya PHP Ses Yürütücüsü, tarayıcı, çalma listesi ve arama yapısı ile sezgisel bir tarayıcı tabanlı ses çalardır. Yapılandırma veya programlama becerisine gerek duymaz. Müziğinize harika duyarlı bit HTML5 oynatıcı sunmak için dosyanın bir kopyasını web sunucunuza kopyalamanız yeterlidir.

Okumaya devam et “PHP: Single File Audio Player”

PHP: Single File PHP Gallery

Tek dosyadan oluşan bir resim galeri script’i, tek bir PHP dosyasındaki bir web galerisi. Tek yapmanız gereken, bir galeri yapmak için betiği resim içeren herhangi bir dizine kopyalamaktır. Alt dizinler alt galeriler olacak. Resimler ve dizinler için küçük resimler otomatik olarak oluşturulur. Tek Dosya PHP Galerisi herhangi bir yapılandırma veya programlama becerisi gerektirmez.

Projenin sayfasına gitmek için buraya demo sayfası için buraya tıklatın.

Okumaya devam et “PHP: Single File PHP Gallery”

DataTables ile PHP Modal Editör Kullanım Örneği

Veri ızgaraları ya da data grid’ler veritabanı tablolarının listelenmesi, filtrelenmesi ve düzenlenmesi amacıyla programlamayı oldukça kolaylaştıran web nesneleridir. Örneğin bir grid ile ürünleri listeletebilir, istediğiniz ürünleri filtreleyebilir ya da sıralayabilirsiniz. Emin Kadığlu dostumun katkıları ile paylaştığım aşağıdakiörnek uygulaması, bu özelliklerin yanında modal form aracılığı ile canlı düzenlemeyi de desteklemesi açısından güzel bir örnek oldu. Ayrıca, bu örnek Bootstrap kullandığından kolayca farklı temalara da uyarlanabilir.

Okumaya devam et “DataTables ile PHP Modal Editör Kullanım Örneği”

Ücretsiz Web (Apache, MySQL, PHP) Sunucusu UwAmp’ı Tanıyalım

Yaklaşık 10 yıldır kullandığım ve bakımını yaptığım Uniform Server‘i terk etmenin zamanı gelmiş. Geliştirmekte olduğum yeni projem için alelade bir Google araması ile keşfettiğim UwAmp, PHP ve MySQL ile kod geliştiren herkesin en azından bir göz atması gereken bir WAMP server.

Okumaya devam et “Ücretsiz Web (Apache, MySQL, PHP) Sunucusu UwAmp’ı Tanıyalım”

Varnish, Child not responding to CLI, killing it.

1 haftadır zaman zaman varnish cache sunucusu, çöküyor
watcheri bunu algılıyor killiyor, buraya kadar bir sorun yok
ama ne hikmetse tekrar başlatmıyor ve servis kapalı kalıyor.

Hata loglarındada birşey görünmüyor, varnish cache alanıda 256mb
okuduğum dökümanlarda cache alanının büyük olduğundan,
sistem swap alanı takası esnasında oluşan bootle neck,
sistemin fiziksel ramı kalmadığından vs olabileceği yazılmış ancak hiç biri
benim için geçerli bir durum değil.

Okumaya devam et “Varnish, Child not responding to CLI, killing it.”

Tübitak Projesi: YEŞİL KOD

2014 yılında Tübitak OPY Samsun Bölgesine davet edilen projemiz: “Yeşil Kod”

A (195x120)

Sunucu tabanlı web yazılımlarının (PHP, ASP, JSP vs) çalıştığın donanımın kaynaklarını verimli kullanarak, dinamik web sitelerinin web tarayıcısına yüklenme süresini azaltarak kullanıcılarına daha hızlı hizmet vermesini sağlayacak bir algoritma tasarlamak ve aynı zamanda elektrik enerjisi tasarrufunda bulunmaktır.

Okumaya devam et “Tübitak Projesi: YEŞİL KOD”

Plupload ile dosya yüklemek

plupload_ile_dosya_yuklemek

Plupload oldukça güzel bir dosya yükleme script’i. Web sayfanız üzerinden aynı anda birçok dosya seçip sunucuya yükleyebilirsiniz. Flash, HTML5 gibi birçok yöntemle dosya yüklemesi yapabilen bu ücretsiz script’in en güzel özelliği resim dosyalarını upload etmeden önce yeniden boyutlandırabiliyor. Böylece yüksek boyutlu fotografların yükleme zamanı kısalıyor. Buradan örnekleri inceleyebilirsiniz. Kendi arabirimini kullanmadan da JQuery ile  yükleme yaptırtmak mümkün (custom example da örneği gösterilmiş) Ayırca script, resim dosyalarını göndermeden önce ön izleme de sunabiliyor ve dosyaları sürükle bırak desteği ile de seçtirebiliyor. Ayarlamanıza izin verdiği chunk_size parametresi  gigabyte’larca veriyi zaman aşımına uğramadan (sunucudaki php betiği için) parçalar halinde de upload edebiliyor. Hazırladığım örnek dosyayı indirerek, kendiniz de deneyimleyebilirsiniz.

[Yükleme bulunamadı.] Okumaya devam et “Plupload ile dosya yüklemek”

Javascript içinde PHP kullanmak

pass-data-from-php-to-javascript

Evet gayet mümkündür. PHP sunucu tarafında çalıştırılan bir dildir. Javascript ise tarayıcı da (istemci tarafında) çalışır. Linux sunucunuzda aşağıdaki gibi bir .htaccess dosyası oluşturursanız .js dosyaları PHP yorumlayıcısı (PHP interpreter) tarafından işletilir.

[stextbox id=”grey” caption=”.htaccess”]<FilesMatch “\.js$”>
SetHandler application/x-httpd-php
Header set Content-type “application/javascript”
</FilesMatch>[/stextbox]

PHP’de ob_flush’ın nasıl kullanıldığını öğrenin

Çok seneler önce burada  ob_implicit_flush sayesinde ob_flush fonksiyonunun kısa bir kullanım örneğini vermiştim. Malesef aradan 5 yıl geçtikten sonra görüyorum ki bu iş 2 satır kod ile gerçekleştirilemeyecek duruma gelmiş ;)  Biraz araştırma ve teftiş ile tüm tarayıcılarda çalışan bir kod elde etmeyi başardım. Kodu aşağıda paylaşıyorum.  Kodu kullanmaya başlamadan önce aynı dizinde bir .htaccess dosyası oluşturup içinde şu satırların olduğundan emin olun.

# Apache gzip sikistirmasi uygulamasin
SetEnv no-gzip dont-vary

# PHP output buffer’a sikistirma uygulamasin
php_flag zlib.output_compression Off

Demo sayfasını görüntülemek için burayı tıklayınız.

Okumaya devam et “PHP’de ob_flush’ın nasıl kullanıldığını öğrenin”

myPHPRedirector v0.1

Uzun linkleri kısaltmak amacıyla giriştiğim bir iş. Genelde ortam ve kullanıcı bigilerinin HTTP GET metodu ile taşınması sonucu oluşan çirkin, karışık ve uzun web linklerini daha basit bir forma dönüştürüyor.

Okumaya devam et “myPHPRedirector v0.1”

PHP ile dizindeki dosyaları listelemek

Aşağıda basit bir listeleme kodu yer alıyor.

PHP ile Paralel Port (LPT) Kontrolü

Bir önceki yazımda Pardus Linux üzerinde LPT kontrolünün nasıl yapılacağını anlatmıştım. Şimdi bu işi bir adım daha ileri götürerek paralel port kontrolünü PHP ile web sayfası üzerinden nasıl yapabileceğimize bakacağız.

İlk olarak apache ve php kurulumunu yapmalıyız. Sisteminizde apache ve mod_php kurulu değilse root’a geçtikten sonra aşağıdaki pisi komutu ile kurulumu kolayca gerçekleştirebilirsiniz.

pisi it apache mod_php -y

Bir önceki uygulamada komut satırını kullanarak derlediğimiz lptout programına parametre gönderiyorduk. Şimdi ise aynı komutu PHP içerisinden çalıştıracağız. PHP içinde sistem komutu çalıştırmak için shell_exec ve exec gibi komutlar var.

Bir önceki yazımda olduğu gibi, LPT’nin data gurubunun tüm pin’lerini +5v’a çekmek için PHP sayfasına yazılması gereken kod şöyle;

Yukarıdaki PHP kodu /home/tankado dizini altındaki lptout programına 2 adet parametre göndererek çalıştırılmasını sağlıyor.

Okumaya devam et “PHP ile Paralel Port (LPT) Kontrolü”

WP MySQL Console Plugin

Click for English Translation

WP MySQL Console Nedir?

MySQL veritabanı sunucusu ile beraber gelen  komut kabuğunu çoğu kişi bilir. Komut kabuğu dediğim aslında MySQL’in standart veritabı istemci aracı (mysql.exe ./mysql). Bu araç ile SQL komutları kullanarak veritabanı sorguları çalıştırırz. Bu komut satırı aracının yerine birçok görsel istemci yazılımı geliştirilmiş olmasına rağmen, komut satırına uzun uzun SQL komutları yazmak da ayrı bir zevktir. Bilenler bilir ;) Ayrıca sözünü ettiğim görsel araçlar ile herzaman herşeyi yapmak da mümkün değil. Bu araçları kullanırken önünde sonunda komut satırına düşüp kendi SQL sorgularınızı çalıştırmanız gerekir.

Okumaya devam et “WP MySQL Console Plugin”