Gelişmiş yenilikçi özellikler sunan, buna karşın, geleneksel kullanıcı deneyimini de bir biçimde sürdüren ve Linux Mint tarafından geliştirilen Cinnamon masaüstü ortamının 4.2.3 sürümü duyuruldu. Clement Lefebvre tarafından github.com üzerinden duyurulan yeni sürüm, böylelikle kullanıma sunulmuş oldu. Sürümde 2 dosya değişikliği, 27 ekleme ve 1 silme işleminin gerçekleştirildiği bildiriliyor. Sürümün çıkarılmasına ilişkin olarak tüm ekip ve geliştiriciler adına duyulan mutluluk ifade edilirken, kullanıcıların çeşitli geliştirme ve yeniliklerle gelen sürümle ilgili olarak tespit ettikleri ayrıntıların geribildirimi konusunda tereddüt etmemeleri rica edildi. Cinnamon 4.2.3 hakkında ayrıntılı bilgi edinmek için değişiklikler sayfasını inceleyebilirsiniz.
Wayland protokol 1.18 sürümü, Jonas Ådahl tarafından duyuruldu. Dokümantasyon açıklamaları, hata düzeltmeleri ve küçük mevcut protokollere eklemeler içeren yeni sürümün grafik API’leri kullanırken protokolü kullanma hakkında uyarılar içerdiğini söyleyen Ådahl; çeşitli yazım hatası düzeltmelerinin yapıldığını belirtti. Bilindiği gibi, 1980’lerin Başında bir MIT mühendisi olan Bob Scheifler tarafından duyurulan X; bilgisayarlar için yeni grafik görüntüleme sistemiydi ve o günlerde büyük bir devrimi ifade ediyordu. Kısa sürede UNIX ve benzeri sistemlerde standart grafik arayüz olarak kullanılmaya başlanan ve hâlâ da kullanılmakta olan X; ağ üzerinde çalışmaya imkan veren ilk grafik görüntüleme sistemiydi. Zaman paylaşımlı bir sunucu üzerinde çalışan bir X sunucusu ağdaki istemciler tarafından kullanılabiliyordu. Zaten X, donanımdan bağımsız ve tamamen ağda hizmet verebilecek şekilde tasarlanmıştı. MIT yönetiminde ve Bob Scheifler liderliğinde geliştirilen X sunucusunun üstün olduğu ağ imkanları 90’lı yıllarda çoğunlukla kullanılmamaya başlandı. Ayrıca, X’in çok çeşitli donanımlara Linux ortamında nasıl erişim sağlayacağı da önemli bir sorun haline gelmişti. Bu, GNU/Linux dünyası için üzüntü vericiydi. Bu gelişmelere yönelik olarak, 2007 yılında Thomas Hellstrom, Eric Anholt ve Dave Airlie tarafından geliştirilen TTM (Translation Table Maps) adını verilen bir önbellekleme sistemi kullanılmaya başlandı. Böylelikle uygulamalar grafik verilerin işlenmesi için beklemek zorunda kalmayacak ve hızlanacaklardı. Wayland protokol 1.18 hakkında ayrıntılı bilgi edinmek için sürüm duyurusunu inceleyebilirsiniz.
Bu, kuşkusuz, GNU/Linux çevvrelerinde memnunlukla karşılandı. Sonuç olarak, tüm Linux grafik sürücülerinin kullanabileceği bir bellek yönetim sistemi kullanılabilir olmuştu. Ancak, açık kaynak kodlu Linux grafik sürücülerinin basit API’lere ihtiyaç duymasına karşılık; TTM çok büyük bir kod yığınıydı. Buna ilişkin olarak, 2008 yılında Reenter Keith Packard ve Eric Anholt’un da yardımıyla TTM için yeni bir API yazıldı. GEM (Graphics Execution Manager) adı verilen bu yapı; mevcut Kernel fonksiyonlarını kullanacak şekilde değiştirilip küçültülmüştü. Ancak asıl sorun; OpenGL, Qt ve Gtk+ gibi büyük boyutlu kütüphaneler ile kernel arasındaki ilişkide X’in modern grafik ihtiyaçlarını karşılayacak durumda olmadığını gösteriyordu. Bu aşamada, bir yazılım mühendisi olan AIGLX’in yazarı Kristian Høgsberg, grafik çıktılarının doğrudan Kernel’e gönderileceği, uygulamaların doğrudan GPU’ya ulaşabileceği bir tasarıma girişmişti. Kısa sürede temel kütüphaneleri yazmaya başlayan ve çok kısa bir süre içinde, az çok çalışan bir sunucu geliştirmeyi başaran Høgsberg’in X sunucusuna hiçbir bağımlılığı olmayan bir son işlem API’si kullanan yazılımının adı: Wayland idi. Konu, phoronix.com‘un haberi ile duyuruldu. Henüz çok taze bir proje olan Wayland’ın kaynak kodları da internette yerini aldı. Wayland, küçük gömülü sistemler, cep telefonları ya da küçük oyuncaklarda dahi çalışabilecek kadar hafif biçimde tasarlanıyordu. Høgsberg, geriye dönük uyumluluğu sağlamak için X sunucusunun Wayland’ın bir istemcisi konumunda çalışabilmesine olanak sağlamıştı. Wayland günümüzde Kernel’de bulunan GEM, evdev (input drivers) ve kms (kernel mode switching) teknolojilerini ve DRI2 (Direct Rendering Infrastructure) kullanıyor. Intel ve RedHat tarafından desteklenen bu yeni teknoloji, X için çözülmesi zor görünen pek çok geleneksel sorunu çözmeye yaklaşmış görünüyor. Intel, sürücülerinin Wayland ile daha performanslı çalışmasını sağlamak için projeye, Wayland geliştiricilerini kiralayacak kadar büyük destek sunuyor. Wayland protokol 1.18 edinmek için aşağıdaki linkten yararlanabilirsiniz.
GNU/Linux tabanlı ve diğer Unix benzeri işletim sistemlerinde bilgisayar ağlarının kullanımını basitleştirmeyi amaçlayan bir yardımcı program olan NetworkManager’in 1.18.2 sürümü duyuruldu. Bu yeni ve kararlı bir sürümde 5.2 çekirdek üzerinde wireshark modülü ile uyumluluk eklendiği bildirilirken, ifcfg-rh eklentisinde PKCS#12 kullanımının düzeltildiği söyleniyor. Yapılandırılmamış cihazların bağlantısının kontrol edilmemesi vurgulanırken, Slackware’deki kalıcı ana bilgisayar adı için FQDN kullanılması öneriliyor. NetworkManager 1.18.2 hakkında daha bilgi edinmek için haberler sayfasını inceleyebilirsiniz.
İnternet’e bağlı Unix sistemlerde kullanmak için Cambridge Üniversitesi‘nce geliştirilen bir ileti aktarım aracısı (MTA) olan Exim‘in 4.92.1 sürümü duyuruldu. Smail 3‘e benzer tarzda olan Exim’in imkanları daha geneldir. Gelen postaları kontrol etmek için geniş olanakları olan ve GNU Genel Kamu Lisansı koşulları altında serbestçe kullanılabilen özgür bir yazılım olan Exim’in yapılandırması oldukça farklı olmasına rağmen, Sendmail‘in yerine yüklenebilir. Daha önceki Exim sürümlerinin eskidiği için kullanılmaması istenirken, yazılımların yeni sürüme yükseltilmeleri öneriliyor. Exim’in 4.92 sürümünden önceki tüm sürümlerinin artık kullanılmaması gerektiği hatırlatılırken, 3.x serisinden son sürümün 3.36 olduğu ifade edilerek, bu sürümün çok eskimiş olduğu, kesinlikle kullanılmaması istendi. Exim 4.92.1 hakkında ayrıntılı bilgi edinmek için projenin anasayfasına başvurabilirsiniz.
Exim’in orijinal yazarı Philip Hazel tarafından yazılan The Exim SMTP Mail Server adlı kitap, satın almak isteyenler için exim.org‘da sunuluyor. Kitabın içindekiler tablosuyla örnek bir bölümünü burada bulabilirsiniz. Exim 4.92.1 edinmek için aşağıdaki linklerden yararlanabilirsiniz.
Nokia’nın işten çıkardığı mühendisler tarafından kurulan Jolla adlı şirketin ilk akıllı telefonu Jolla üzerinde kullanıldığını haber yaptığımız Sailfish OS‘un kod ismini Seitseminen Milli Parkı’ndan alan Sailfish OS 3.1 sürümü, Mariana Perez tarafından duyuruldu. Sailfish OS 3.1 Seitseminen üncellemesini duyurmaktan mutluluk duyduklarını söyleyen Perez; pek çok güncelleme ile gelen sürümün güvenlik açığı düzeltmeleri, kararlılık iyileştirmeleri ve farklı alanlarda daha iyi uyumluluk pozisyonları da içerdiğini ifade etti. Geçen yıl duyurulan Sailfish 3’ten sonraki en büyük güncelleme olduğu belirtilen Sailfish OS 3.1 Seitseminen; kişiler, telefon, mesajlar ve saat gibi temel uygulamalara yeniden tasarımlar getiriyor. Belge görüntüleyicileri, e-posta, takvim, çift SIM kart görüntüleyici bilgisi ve galeri gibi alanlar da geliştirilmiş bulunuyor. Sailfish OS 3.1 Seitseminen hakkında ayrıntılı bilgi edinmek için sürüm duyurusunu inceleyebilirsiniz.
Alpha 3 sürümü 11 Temmuz 2019‘da duyurulan PHP 7.4.0’ın ilk beta sürümü duyuruldu. Çeşitli hataları giderilen ve kimi güvenlik düzeltmeleri ve kimi iyileştirmeler içeren yeni sürüm, heyecan verici bir sürüm elde etmek için birçok önemli ekleme getiriyor. Yeni sürüm hakkında daha fazla bilgi edinmek için haberler veya yükseltme dosyalarını inceleyebilirsiniz. PHP ekibinin, PHP 7.4.0 Beta 1’i duyurmaktan mutluluk duyduğu söylenirken, bunun bir test sürümü olduğunun unutulmaması ve yalnızca test etmek amacıyla kullanılması gerektiği hatırlatılırken, test eden kullanıcıların tespit ettikleri hataları rapor etmeleri rica ediliyor. PHP 7.4.0 final sürümün Kasım sonunda duyurulması beklenirken, o zamana değin beta sürümler ve sürüm adaylarının da duyurulması bekleniyor. PHP performans iyileştirmeleriyle gelen yeni sürümde, PHP Hash uzantısı şimdi PHP’nin ayrılmaz bir parçasıdır ve artık devre dışı bırakılamaz. Sürüm, PHP OpenSSL akış desteği içindeki TLS 1.3 desteği içeriyor. ilk kez Rasmus Lerdorf tarafından, web üzerinden sayfasını ziyaret edenleri izlemek amacıyla bir dizi Perl betiği kullanılarak geliştirilmişti. Ancak insanlar bununla ilgilenmeye başlayınca, Lerdorf bir betik motoru oluşturmaya karar verdi. Ayrıca formlara da destek verdi ve böylece PHP/F1 biçimlenmiş oldu. Adı duyuldukça kimi geliştiricinin dikkatini çekti ve böylece bir API oluşturuldu: PHP3 meydana geldi. Ardından Zend motoruyla PHP4 geldi. Günümüzde PHP; bloglardan forumlara, portal sistemlerinden veri tabanlarına, sınıflardan fonksiyonlara her türlü işlevde kullanılıyor. PHP 7.4.0 Beta 1 hakkında ayrıntılı bilgi edinmek için sürüm duyurusunu inceleyebilirsiniz.
Before we talk about how to prevent SQL injection, we have to know the impact of SQL Injection attack which is one of the most dangerous attacks on the web. The attacker can steal your data or even worse, the whole web server can be stolen from one SQL injection vulnerability. I wrote this post to show you how to prevent SQL injection. If you need to know more about SQL injection itself and its types and all other stuff, you can do a simple search on google if you want. The solution is to clean the request parameters coming from the user . Keep in mind that the solution that I’ll share with you is not like the most solutions on the web that go to every SQL statement and clean the request variables one by one.
My solution is preventing SQL injection without messing with your CMS files. Well, maybe someone who is using PHP would say that is easy, it is just using a function like mysql_real_escape_string or mysqli_real_escape_string. But that works only on a single dimensional array, what about a multi-dimensional array? Well, we need to iterate over array items recursively. So what we will do is preventing SQL injection against a multidimensional array.
Solution
This code does the magic for both single and multidimensional arrays using PHP:
if (!function_exists("clean")) { //Gets the current configuration setting of magic_quotes_gpc if on or off if (get_magic_quotes_gpc()) { function magicquotes_Stripslashes(&$value, $key) { $value = stripslashes($value); } $gpc = array(&$_COOKIE, &$_REQUEST); array_walk_recursive($gpc, 'magicquotes_Stripslashes'); } function clean(&$value, $key) { //here the clean process for every array item // use mysqli_real_escape_string instead if you use php 7 $value = mysql_real_escape_string($value); } } $req = array(&$_REQUEST); array_walk_recursive($req, 'clean');
The PHP function used to walk through the request multidimensional array is array_walk_recursive.
Just put this code on the top of your site or header file right after connecting to the database, your file could be up.php or header.php or something similar.
Because if you use this code before the connection occurs, it will show an error because you are using mysql_real_escape_string function which needs a SQL connection.
If you are using PHP 7, you’ll notice that MySQL extension is removed, so in order to make the above code working, you need to replace the function mysql_real_escape_string with mysqli_real_escape_string.
One final thing I have to mention regarding your code, you should keep your SQL parameters on all of your pages between quotes like this:
mysql_query("select * from users where email='$email' order by id");
Notice how the variable $email is quoted.
Without quoting your input like the above statement, SQL injection prevention won’t work.