Tag Archives | mysql

How to prevent SQL injection attacks?

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.

Continue Reading →

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.

0

MariaDB 10.4.6 duyuruldu

İlişkisel veritabanı sistemi olan MySQL’in kaynak kodundan türeyen ve GNU Genel Kamu Lisansı altında kullanıma sunulan MariaDB’nin 10.4.6 sürümü, Ian Gilfillan tarafından duyuruldu. Bunun kararlı bir sürüm olduğu belirtilirken, yeni sürümde, şimdi Windows’ta MSI ve ZIP paketlerinde ve Debian ve Ubuntu’nun varsayılan depolarında sağlanan .deb paketlerinde paketlenmiş wolfSSL kitaplığıyla statik olarak bağlandığı ifade ediliyor. Güvenlik, yüksek kullanılabilirlik ve ölçeklenebilirlik özellikleriyle gelen yazılımın, daha fazla işlevsellik sunmaya çaba gösterdiği belirtildi. Bilindiği gibi yazılımın MariaDB ve MariaDB Galera Cluster olmak üzere iki versiyonu bulunuyor. MySQL’in yaratıcısı olan Monty Widenius; kızının adı My’ı yazılıma isim olarak vermişti. Oracle MySQL’in topluluk geliştirme modelinden uzaklaşınca, Monty Widenius MySQL’in kodunu çatallayıp yeni bir yazılıma yönelince, bu kez ikinci kızının adı olan Maria’yı isim olarak seçti ve MariaDB ortaya çıktı. MySQL ile bire bir yer değiştirebilen MariaDB, pek çok kütüphane kodlarının ortak olması nedeniyle tüm MySQL komutlarını tanır ve MySQL arayüz metotlarını destekler. MariaDB 10.4.6 hakkında ayrıntılı bilgi edinmek için sürüm duyurusunu veya sürüm notlarını inceleyebilirsiniz.

Continue Reading →

Genel Kamu Lisansı’na (GPL) sahip özgür bir yazılım olarak sunulan yazılımı GPL’in kısıtladığı alanlarda kullanmak isteyenler ayrı bir lisansla satın alabiliyor. MySQL ile aynı komutları, aynı arayüzleri, aynı kitaplıkları ve API’leri içeren MariaDB; MySQL ile özellik açısından birebir uyumludur. Dağıtımların çoğu hâlâ resmi olarak MySQL’i desteklerken, yeni ek özellikler ve geliştirmeler yapılan MariaDB’nin ayrıca kurulması gerekiyor. MariaDB 10.4.6 edinmek için aşağıdaki linkten yararlanabilirsiniz.

2

MariaDB 10.3.16 duyuruldu

İlişkisel veritabanı sistemi olan MySQL’in kaynak kodundan türeyen ve GNU Genel Kamu Lisansı altında kullanıma sunulan MariaDB’nin 10.3.16 sürümü duyuruldu. MariaDB 10.3.16 hakkında ayrıntılı bilgi edinmek için sürüm notları ve değişiklikler sayfası incelenebilir. Güvenlik, yüksek kullanılabilirlik ve ölçeklenebilirlik özellikleriyle gelen yazılımın, daha fazla işlevsellik sunmaya çaba gösterdiği belirtildi. Bilindiği gibi yazılımın MariaDB ve MariaDB Galera Cluster olmak üzere iki versiyonu bulunuyor. MySQL’in yaratıcısı olan Monty Widenius; kızının adı My’ı yazılıma isim olarak vermişti. Oracle MySQL’in topluluk geliştirme modelinden uzaklaşınca, Monty Widenius MySQL’in kodunu çatallayıp yeni bir yazılıma yönelince, bu kez ikinci kızının adı olan Maria’yı isim olarak seçti ve MariaDB ortaya çıktı. MySQL ile bire bir yer değiştirebilen MariaDB, pek çok kütüphane kodlarının ortak olması nedeniyle tüm MySQL komutlarını tanır ve MySQL arayüz metotlarını destekler.

Continue Reading →

Genel Kamu Lisansı’na (GPL) sahip özgür bir yazılım olarak sunulan yazılımı GPL’in kısıtladığı alanlarda kullanmak isteyenler ayrı bir lisansla satın alabiliyor. MySQL ile aynı komutları, aynı arayüzleri, aynı kitaplıkları ve API’leri içeren MariaDB; MySQL ile özellik açısından birebir uyumludur. Dağıtımların çoğu hâlâ resmi olarak MySQL’i desteklerken, yeni ek özellikler ve geliştirmeler yapılan MariaDB’nin ayrıca kurulması gerekiyor. MariaDB 10.3.16 edinmek için aşağıdaki linklerden yararlanabilirsiniz.

0

GNU OrgaDoc 1.2 duyuruldu

Bir belge rezervini bilgisayarlar arasında kolayca kopyalayıp korumak için tasarlanan GNU OrgaDoc‘un 1.2 sürümü, Adam Bilbrough tarafından duyuruldu. GNU OrgaDoc’un 1.2 sürümünü duyurmaktan memnuniyet duyduğunu söyleyen Bilbrough; GNU OrgaDoc’un bilgisayarlar arasında bir belge havuzunu kolayca kopyalamak ve korumak için tasarlandığını hatırlattı. Bir veritabanı sunucusu (MySql veya PostgreSql gibi) ya da bir HTTP sunucusu veya bir betik dili (php, perl, … gibi) yüklemeyi gerektirmeyen yazılım; sync veya unison ile senkronize edilebilir. GNU OrgaDoc; html (veya başka formatlarda) sayfalar oluşturmak için yeterlidir. GNU OrgaDoc kullanmak için yalnızca belgeleri tanımlayan xml dosyaları oluşturmak gerekir. GNU OrgaDoc’un nasıl kullanılması gerektiğine ilişkin olarak burayı inceleyebilirsiniz. GNU OrgaDoc 1.2 hakkında ayrıntılı bilgi edinmek için sürüm duyurusunu inceleyebilirsiniz.

Continue Reading →

GNU OrgaDoc 1.2 edinmek için aşağıdaki linklerden yararlanabilirsiniz.

0

MariaDB 10.3.15 duyuruldu

İlişkisel veritabanı sistemi olan MySQL’in kaynak kodundan türeyen ve GNU Genel Kamu Lisansı altında kullanıma sunulan MariaDB’nin 10.3.15 sürümü duyuruldu. MariaDB 10.3.15 hakkında ayrıntılı bilgi edinmek için sürüm notları ve değişiklikler sayfası incelenebilir. Güvenlik, yüksek kullanılabilirlik ve ölçeklenebilirlik özellikleriyle gelen yazılımın, daha fazla işlevsellik sunmaya çaba gösterdiği belirtildi. Bilindiği gibi yazılımın MariaDB ve MariaDB Galera Cluster olmak üzere iki versiyonu bulunuyor. MySQL’in yaratıcısı olan Monty Widenius; kızının adı My’ı yazılıma isim olarak vermişti. Oracle MySQL’in topluluk geliştirme modelinden uzaklaşınca, Monty Widenius MySQL’in kodunu çatallayıp yeni bir yazılıma yönelince, bu kez ikinci kızının adı olan Maria’yı isim olarak seçti ve MariaDB ortaya çıktı. MySQL ile bire bir yer değiştirebilen MariaDB, pek çok kütüphane kodlarının ortak olması nedeniyle tüm MySQL komutlarını tanır ve MySQL arayüz metotlarını destekler.

Continue Reading →

Genel Kamu Lisansı’na (GPL) sahip özgür bir yazılım olarak sunulan yazılımı GPL’in kısıtladığı alanlarda kullanmak isteyenler ayrı bir lisansla satın alabiliyor. MySQL ile aynı komutları, aynı arayüzleri, aynı kitaplıkları ve API’leri içeren MariaDB; MySQL ile özellik açısından birebir uyumludur. Dağıtımların çoğu hâlâ resmi olarak MySQL’i desteklerken, yeni ek özellikler ve geliştirmeler yapılan MariaDB’nin ayrıca kurulması gerekiyor. MariaDB 10.3.15 edinmek için aşağıdaki linklerden yararlanabilirsiniz.

0

MariaDB 10.3.14 duyuruldu

İlişkisel veritabanı sistemi olan MySQL’in kaynak kodundan türeyen ve GNU Genel Kamu Lisansı altında kullanıma sunulan MariaDB’nin 10.3.14 sürümü duyuruldu. MariaDB 10.3.14 hakkında ayrıntılı bilgi edinmek için sürüm notları ve değişiklikler sayfası incelenebilir. Güvenlik, yüksek kullanılabilirlik ve ölçeklenebilirlik özellikleriyle gelen yazılımın, daha fazla işlevsellik sunmaya çaba gösterdiği belirtildi. Bilindiği gibi yazılımın MariaDB ve MariaDB Galera Cluster olmak üzere iki versiyonu bulunuyor. MySQL’in yaratıcısı olan Monty Widenius; kızının adı My’ı yazılıma isim olarak vermişti. Oracle MySQL’in topluluk geliştirme modelinden uzaklaşınca, Monty Widenius MySQL’in kodunu çatallayıp yeni bir yazılıma yönelince, bu kez ikinci kızının adı olan Maria’yı isim olarak seçti ve MariaDB ortaya çıktı. MySQL ile bire bir yer değiştirebilen MariaDB, pek çok kütüphane kodlarının ortak olması nedeniyle tüm MySQL komutlarını tanır ve MySQL arayüz metotlarını destekler.

Continue Reading →

Genel Kamu Lisansı’na (GPL) sahip özgür bir yazılım olarak sunulan yazılımı GPL’in kısıtladığı alanlarda kullanmak isteyenler ayrı bir lisansla satın alabiliyor. MySQL ile aynı komutları, aynı arayüzleri, aynı kitaplıkları ve API’leri içeren MariaDB; MySQL ile özellik açısından birebir uyumludur. Dağıtımların çoğu hâlâ resmi olarak MySQL’i desteklerken, yeni ek özellikler ve geliştirmeler yapılan MariaDB’nin ayrıca kurulması gerekiyor. MariaDB 10.3.14 edinmek için aşağıdaki linklerden yararlanabilirsiniz.

0

MariaDB 10.3.13 duyuruldu

İlişkisel veritabanı sistemi olan MySQL’in kaynak kodundan türeyen ve GNU Genel Kamu Lisansı altında kullanıma sunulan MariaDB’nin 10.3.13 sürümü duyuruldu. MariaDB 10.3.12 hakkında ayrıntılı bilgi edinmek için sürüm notları ve değişiklikler sayfası incelenebilir. Güvenlik, yüksek kullanılabilirlik ve ölçeklenebilirlik özellikleriyle gelen yazılımın, daha fazla işlevsellik sunmaya çaba gösterdiği belirtildi. Bilindiği gibi yazılımın MariaDB ve MariaDB Galera Cluster olmak üzere iki versiyonu bulunuyor. MySQL’in yaratıcısı olan Monty Widenius; kızının adı My’ı yazılıma isim olarak vermişti. Oracle MySQL’in topluluk geliştirme modelinden uzaklaşınca, Monty Widenius MySQL’in kodunu çatallayıp yeni bir yazılıma yönelince, bu kez ikinci kızının adı olan Maria’yı isim olarak seçti ve MariaDB ortaya çıktı. MySQL ile bire bir yer değiştirebilen MariaDB, pek çok kütüphane kodlarının ortak olması nedeniyle tüm MySQL komutlarını tanır ve MySQL arayüz metotlarını destekler.

Continue Reading →

Genel Kamu Lisansı’na (GPL) sahip özgür bir yazılım olarak sunulan yazılımı GPL’in kısıtladığı alanlarda kullanmak isteyenler ayrı bir lisansla satın alabiliyor. MySQL ile aynı komutları, aynı arayüzleri, aynı kitaplıkları ve API’leri içeren MariaDB; MySQL ile özellik açısından birebir uyumludur. Dağıtımların çoğu hâlâ resmi olarak MySQL’i desteklerken, yeni ek özellikler ve geliştirmeler yapılan MariaDB’nin ayrıca kurulması gerekiyor. MariaDB 10.3.13 edinmek için aşağıdaki linklerden yararlanabilirsiniz.

0