PHP SQL Injection Açığını Kapatın !.

sestasarimÖzgür Sürme

Get ile gelen bütün verileri kontrol eder ve $inj arrayındakiler var mı yok mu kontrol ediyor

Her sayfanın başına veya her sayfaya include ettiğiniz bir php bağlan dosyası fln vardır o şekilde kullanabilirsiniz


// #### PHP SQL Injection Açığı Kapatma ####

$inj = array ('select', 'insert', 'delete', 'update', 'drop table', 'union', 'null', 'SELECT', 'INSERT', 'DELETE', 'UPDATE', 'DROP TABLE', 'UNION', 'NULL','order by','order  by');
for ($i = 0; $i < sizeof ($_GET); ++$i){ for ($j = 0; $j < sizeof ($inj); ++$j){ foreach($_GET as $gets){ if(preg_match ('/' . $inj[$j] . '/', $gets)){ $temp = key ($_GET); $_GET[$temp] = '';
exit;
continue;
}
}
}
}


Güle güle kullanın gaayet sağlam bir fonksiyondur. Sorun yaşatmaz smiley

2013-08-14 19:03:04 Edit:2013-08-14 19:06:36

Php

alicilinAli Fırat Güler

' ve " karakterlerini düzgün filtreledikten sonra hayatta sorun çıkmaz. bu fonksiyon çok mantıksız. sebebine gelince.;

ınsert ınto zart zurt values ('veri burayaa') buraya bu şekilde veri girerken '  bu verideki ' karakterini \' bu hale dönüştürdüyseniz hiç problem kalmamış dmeektir. çünki ' bu tırnaklar arasına ne yazarsanız yazın sql bunu sting ten başka bişey görmeyecektir'

Bu yüzden verdiğiniz fonksiyonu kullanırsam ve bunu blogumda kullandığımı varsayarsam;

"select union all" isimli bir makale açıcak olursam verdiğiniz fonksiyon hepsini engellemişi olucaktır.

Bu fkirde burda çöker.

2013-08-14 23:19:52

Php

phpde sql injection  guvenligi icin bir cok  yontem mevcut sadece addslashes  komutu bile  yeterli olabiliyor bu gereksiz ve sacma bir fonksiyon olmus   alicilin hocamda  cok guzel bir acıklama yapmıs

 php de  veri  guvenligi icin html specials chars addslashes stripslashess  gibi  bir  cok hazır fonksiyon var onlar kullanmanız isinizi gorecektir 

 hepsinden onemli bir  redirector ile   .htaccess yapılandırmanız iyi ise  in url  den     hic bir sekilde    giris yapamazlar  

2013-08-16 15:14:53

Php

alicilinAli Fırat Güler

#bozkurtmanas ustam.

Aslında sql deki tek  injection açığı ' ve " karakterlerinden oluşuyor hocam. Siz bu tırnak sorunundan ödün vermezseniz eğer Zaten kişi istediği kadar sql sorgusu yazsın. Her halukarda yazılan şeyler sql tarafından string ifade olarak algılanacaktır. Ancak bu tırnaklar ile ilgili açığınız varsa ozaman ona bişey diyemicem.

Stringler için addslashes, sayılsal değerleri içinde (int) şeklinde tür dönüşümü yaptığınız zaman asla ama asla açık vermezsiniz.

2013-08-16 22:45:51 Edit:2013-08-17 04:37:51

Php

sestasarimÖzgür Sürme

yahu beyler ben burda yeni olan veya konuya tam vakıf olmuyanlar veya az olsa bilgi sahibi olmak isteyenler için yazdım siz tam saçmalamışsınız "select union all" adında makale aç da bu cümlenin anlamı biliyormusun bir makale başlığı olabilir mi ?

bir çok açık kapatma yöntemi var bunu daha basite indirgeme için yaptım yoksa şuda olabilir 

$duyuruno= $_GET['duyuru_no'];

şeklindede olabilir

$duyuruno = (int)$_GET[duyuru_no];

benim orda acil durumda tek tek dosya aramadan kısadan yapabileceğin bir yöntem :))

2013-08-27 08:48:14

Php

alicilinAli Fırat Güler

Saçmalamışssınız derken ? Bence ilk önce kendinize bir gelin derim size.

Neden olmasın ? Ben blog yazıyorum diyelim. Ve "SELECT UNİON ALL" adında makale açıcam belki ? açamazmıyım ? en doğal hakkım bu benim. Kusura bakmayın ama uslubumu kabalık olmasın diye değiştirmemiştim fakat "Saçmalamışssınız" dediğinizden dolayı üslubumu değiştirerek  cevap vermek istiyorum.

Esas saçma olan şey yazdığınız kodlardır. Açık Birşeyleri engelleyerek kapatılmaz. İyi ozaman adam ne tırnak girebilsin ne select girebilsin. açık bırakmamak istiyorsanız belirli karakterleri etkisizleştirin. komple engellemeyin.  Bu iş böyle olmaz. Bilmiyorsanızda sorun öğretelim !

İkinci bir öneride kim olduğunu, ne olduğunu bilmediğiniz insalara biraz daha tertipli konuşmanız. Ben öyle yapıyorum. sizde deneyin.

2013-08-27 11:25:56 Edit:2013-08-27 19:24:37

sestasarimÖzgür Sürme

Bakın ben ne demişim siz ne yazmışsınız konuyu bişr baştan okurmusunuz Arkadaşım ben bir paylaşımda bir bulundum bir arkadaşımız kolay yönden veya hızlıca bir php tabanlı sitesine atak oldu bu atak için siteyi güvenli şekilde ayar.php veya config.php dosyasına bu metodu uygulayarak $_GET medotundan doğan açığını kapatması için bir uyarı ben 31 yaşındayım ve benim dediğim doğrudur demiyorum bilgisayar müh. öğrencisiyim herşeyim doğrudur mantığı olsaydı okumaya devam etmezdim benim örneğe bu tezde burda çöker demene saçmalamışsın dedim bu bir foksiyon acil durumlarda işe yarıyacak foksiyon zaten sen sitenin tabanını ingilizce de yapsan SELECT UNİON ALL  türkçe karşılığı TÜM BİRLİĞİ SEÇİMİ oluyor haa böyle konu açabilirsin ben türkiyede site açan zaten türkçe dil tabanlı olan bir sitede yazı paylaştım ben burda kimseyle yarışmaya girme veya birilerinin bilgilerini çürütme yarışında değilim usluba gelince bu kod diziminde kişiler zarara uğrucaksa haklısınız illegalite varsa haklısınız ama ufakda olsa yardım varsa takdir edicen hata varsa kibarca arkdaşım burda doğrudur ama bazı sorunlar yaratabilir bence bu örnek olmalı örneğini vericen kimsenin makalesine yazsına emeğine harcadığı zamanına hakaret etmeden bu tez burda çöker demeden yani bilgini varsa ama paylaşıcan saçmalamışsınız derken ben konudaki yorumunuza dedim kişilik karakter veya şahşi bir yorum yok yaş olarakda edep veya adap hususunda emin olunki şahsımda anormal davranışlar olmaz ben bir yazı yazdım komple hatalı bir yazı burda önemli olan paylaşım değil mi benim hatam varsa adabı ve hususlara dikkat edilerek cevap yazılmalı haa sitede yetkiniz nedir bilmiyorum bir yönetici arkadaşımız özelden veya konuya cevap yazarak derki arkadaşım yazma buraya bende üyeliğimi pasifleştiririm sorun yok yani :)) ama konuyu baştan okuyun ben ne yazmışım sizin yanıtınız ne ? ve ne alaka ?

2013-09-08 02:34:43

Yazan:alicilin

Saçmalamışssınız derken ? Bence ilk önce kendinize bir gelin derim size.

Neden olmasın ? Ben blog yazıyorum diyelim. Ve "SELECT UNİON ALL" adında makale açıcam belki ? açamazmıyım ? en doğal hakkım bu benim. Kusura bakmayın ama uslubumu kabalık olmasın diye değiştirmemiştim fakat "Saçmalamışssınız" dediğinizden dolayı üslubumu değiştirerek  cevap vermek istiyorum.

Esas saçma olan şey yazdığınız kodlardır. Açık Birşeyleri engelleyerek kapatılmaz. İyi ozaman adam ne tırnak girebilsin ne select girebilsin. açık bırakmamak istiyorsanız belirli karakterleri etkisizleştirin. komple engellemeyin.  Bu iş böyle olmaz. Bilmiyorsanızda sorun öğretelim !

İkinci bir öneride kim olduğunu, ne olduğunu bilmediğiniz insalara biraz daha tertipli konuşmanız. Ben öyle yapıyorum. sizde deneyin.

+100

yazılımda  bir isin birden cok yapılıs sekli vardır o nedenle   kimsenin kimseye bu bundan iyidir  diyebilmesi icin bir test surecinden  gecirmek gerekir  alicilin hocam cok oz bir sekilde anlatmıs buradan kendisine tesekkur ediyorum

konusma uslubunuza gelince  kendinize  ceki duzen verin  eger yazdıgınız kodların olumlu veya olumsuz  degerlendirmesini cekemeyecekseniz yazmayın bu siteye  gereksiz bilgi kirliligi yaratmayın bu sitede gercekten   birseyler ogrenmek isteyen  insanlar var onların  hevesinide kırmayın

2013-08-28 18:52:51

sestasarimÖzgür Sürme

Bakın ben ne demişim siz ne yazmışsınız konuyu bişr baştan okurmusunuz Arkadaşım ben bir paylaşımda bir bulundum bir arkadaşımız kolay yönden veya hızlıca bir php tabanlı sitesine atak oldu bu atak için siteyi güvenli şekilde ayar.php veya config.php dosyasına bu metodu uygulayarak $_GET medotundan doğan açığını kapatması için bir uyarı ben 31 yaşındayım ve benim dediğim doğrudur demiyorum bilgisayar müh. öğrencisiyim herşeyim doğrudur mantığı olsaydı okumaya devam etmezdim benim örneğe bu tezde burda çöker demene saçmalamışsın dedim bu bir foksiyon acil durumlarda işe yarıyacak foksiyon zaten sen sitenin tabanını ingilizce de yapsan SELECT UNİON ALL  türkçe karşılığı TÜM BİRLİĞİ SEÇİMİ oluyor haa böyle konu açabilirsin ben türkiyede site açan zaten türkçe dil tabanlı olan bir sitede yazı paylaştım ben burda kimseyle yarışmaya girme veya birilerinin bilgilerini çürütme yarışında değilim usluba gelince bu kod diziminde kişiler zarara uğrucaksa haklısınız illegalite varsa haklısınız ama ufakda olsa yardım varsa takdir edicen hata varsa kibarca arkdaşım burda doğrudur ama bazı sorunlar yaratabilir bence bu örnek olmalı örneğini vericen kimsenin makalesine yazsına emeğine harcadığı zamanına hakaret etmeden bu tez burda çöker demeden yani bilgini varsa ama paylaşıcan saçmalamışsınız derken ben konudaki yorumunuza dedim kişilik karakter veya şahşi bir yorum yok yaş olarakda edep veya adap hususunda emin olunki şahsımda anormal davranışlar olmaz ben bir yazı yazdım komple hatalı bir yazı burda önemli olan paylaşım değil mi benim hatam varsa adabı ve hususlara dikkat edilerek cevap yazılmalı haa sitede yetkiniz nedir bilmiyorum bir yönetici arkadaşımız özelden veya konuya cevap yazarak derki arkadaşım yazma buraya bende üyeliğimi pasifleştiririm sorun yok yani :)) ama konuyu baştan okuyun ben ne yazmışım sizin yanıtınız ne ? ve ne alaka ?

2013-09-08 02:37:02

Edit:

Edit:

Php

alicilinAli Fırat Güler

Fikir yanlış. Ben o yüzden bu fikir burda çöker dedim. Çünki gerçekten öyle. ama nedense saçmalamakla suçlandım.

2013-09-08 11:38:51

phpkodlari.com © 2009 Herkes Php öğrenecek
Eglence ve Oyun: Gamikro