seen from Norway

seen from Norway
seen from China

seen from United States
seen from T1
seen from Taiwan

seen from Malaysia
seen from T1
seen from China
seen from United States
seen from United States
seen from T1

seen from Malaysia
seen from United States
seen from Maldives
seen from T1
seen from United States
seen from South Korea

seen from United States
seen from United States
mysql_real_escape_string / Güvenlik
Mysql gayet vefalı bir dost gibi depoladığımız her şeyi sır gibi saklar ta ki biz çağırana kadar.Bu vefalı dosta karşı bizde iyi davranmalıyız ki karman çorman veri yıgınları oluşturmayalım ve ilerde büyük sorunlar yaşamayalım veya bu yolladığımız veriler başkalarının eline geçmesin.
Ne saçmalıyor bu şeklinde düşünüyor olabilirsiniz ama ilk öğrenmemiz gerekenlerden biri mysql tablolarımızı gereksinimlerimiz doğrultusunda kullanım amacımıza yönelik oluşturup yolladığımız verilere de dikkat etmektir kendi kanaatimce.
Verilerin başkalarının eline geçmemesi noktasında mysql_real_escape_string e ihtiyacimiz var.Veri hırsızları ve kendine hacker diyen kişiler unutmayınki bilgilerinizin ve sitelerinizin peşinde çağımız bilgi çağı en büyük değer bilgi olmuş durumda.
Peki nasıl faydalanacağız bilgilerimizin başkalarının eline geçmemesi için mysql_real_escape_string fonksiyonundan ne işe yarar bu fonksiyon.
sql_injection : mysql veritabanınıza sitenizdeki kullanıcıdan ve dışardan aldığınız verileri yeterince süzmeden kayıt gerçekleştiriyorsanız muhtemelen başınıza gelecek şey.Sql injectiona veritabanınıza sitenizdeki formlar aracılığı ile get veya post metodları ile aldığınız bilgileri kayıt ederken süzmemeniz sebep olur.bu metod ile işini bilen bir hacker sizin sitenizi komple eline geçirebilir.
Nasıl Korunurum sql injection dan ?
Sitenizde dışardan herhangi şekilde veri alıyorsanız bu verileri önce tehlike arz edebilcek bilgilerden istenmeyen bilgilerden arındırmak için önceden hazırladığınız süzgeç fonksiyonundan geçirebilirsiniz ki birçok programcı bu metodu kullanır.Bu süzgeç sistemi içersinde mysql komutlarını da süzülecek elemanlar olarak ayarlamışsanız endişe edilecek bir durum kalmamıştır.Şayet süzgeç fonksiyonunuz yeterli değilse bu konuda mysql_real_escape_string yardımımıza koşuyor ve veriyi mysql komutlarından temizliyor.
mysql_real_escape_string Fonksiyonunun Kullanımı
Kullanacağınız satır öncesinde mysql bağlantısını yaptıysanız
$temizveri=mysql_real_escape_string($veri); // bir değişkene atadığınız veriyi temizleme
$temizveri=mysql_real_escape_string($_POST[veri]); //post metodu ile alınan veri temizleme
$temizveri=mysql_real_escape_string($_GET[veri]); // get metodu ile alınan veri temizleme
mysql sorgusu sırasında da kullanılabilir.
mysql_query("SELECT * FROM kullanici_tablo WHERE kullanici ='".mysql_real_escape_string($kullanici)."' and sifre='".mysql_real_escape_string($sifre)."');
$_POST globális tömb-változó escape-elése
Escape-elés PHP-ben egyszerűen
<?php foreach ($_POST as $key => $value) { if(is_array($value)){ foreach ($value as $k => $v) { $_POST[$key][$k] = mysql_real_escape_string($v); } } else { $_POST[$key] = mysql_real_escape_string($value); } } ?>
Forrás
http://stackoverflow.com/questions/15855474/foreach-loop-causing-post-to-be-null-mysql-real-escape-string
Les injections SQL sont des failles de sécurités en informatique qui consiste à contourner le fonctionnement normal des requêtes SQL en utilisant un contenu spécifique.
L'article suivant est très instructif et didactique. Il donne un exemple concret d'une faille de sécurité grâce à une injection SQL.
L'article présente 3 fonctions PHP différentes :
Une fonction utilisant mysqli_real_escape_string() pour PHP 5
Une fonction utilisant mysql_real_escape_string() pour PHP 4
Une fonction utilisant addslashes() pour les versions de PHP inférieur à PHP 4.3