Best Studio 1
Best Studio
Agora Metin2 1
Agora Metin2
raderde 1
raderde
Cannn6161 1
Cannn6161
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Mt2Hizmet 1
Mt2Hizmet
melankolıa18 1
melankolıa18
romegames 1
romegames
Krutzo 1
Krutzo
shrpnl 1
shrpnl
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com
SQl Acığı Kapatma Yolları

SQl Acığı Kapatma Yolları

  • Konuyu başlatan Konuyu başlatan SwordRex
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 8
  • Görüntüleme Görüntüleme 2K

SwordRex

𝓣𝓮𝓴 𝓜𝓪𝓵 𝓥𝓪𝓻𝓵𝓲𝓰𝓲𝓶 𝓐𝓬𝓲𝓵𝓪𝓻𝓲𝓶
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye
Fahri Üye
Katılım
8 Eki 2017
Konular
2,420
Mesajlar
10,263
Çözüm
89
Online süresi
4mo 8h
Reaksiyon Skoru
4,207
Altın Konu
244
Başarım Puanı
422
MmoLira
7,171
DevLira
15
Ticaret - 100%
1   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

SQL Nedir ?

# SQL (Structured Query Language) veritabanından bilgi çekme silme vb. gibi işlemler yapabilen bir dildir. Bulunduğumuz zamanda çoğu web sitelerinin alt yapılarında bu veritabanı vardır.
# SQL en yaygın olan güvenlik açığıdır ve çok tehlikelidir.
# SQL hazır scriptler (vbulletin,vb.) gibi yüksek güvenlik testlerinden geçirilmez.
# Bu web siteleri vertibanı ile anlaşmaları için SQL’e ihtiyaç duyarlar.
# Bu web siteleri vertibanı ile anlaşmaları için SQL’e ihtiyaç duyarlar.

Nasıl Kapatılır ?

servar da magic_quotes aktif değilse şayet tırnak problemleri yaşamanız veya sql injectiona maruz kalmanız olası,

sunucu size ait ise php.ini de magic_quotes = değerinin on olmasına dikkat edin, bunun haricinde sayfalarınızın kodlaması utf-8 ve addslashes() fonskiyonundan geçirmeniz durumunda sql injectiona maruz kalmazsınız,

sql injection $_GET ve $_POST ile html den alınan verinin mysql motoruna gönderilirken karakterlerin yanlış algılanması sonucu meydana gelir

addslashes() html den gelen operatör karakterleri ” veya ‘ başına \ koyarak sorgunun es geçmesini sağlar, eğer magic_quotes kapalı ise addslashes işlev görmez. bu nedenle her ne kadar fonksiyondan geçirirseniz geçirin sql injection yinede gerçekleşir. bunun akabinde yine sayfa kodlamanız utf-8 değilse ascii karakter

olarak addslashes bypass edilebilir, sql injection yazılım operatörlerinin karakter setine göre alınıp işlenmesinden ibarettir, eğer siz bu veriyi işlerken bu karakterin query ye ait olmadığını anlatamazsanız query niz bozulur ve injection gerçekleşir. Burada asıl mesele ” ve ‘ süzülmesi olayıdır. query lerinizde where sutun=’$degisken’ şeklinde tırnak içersine almanız query nizin bozulmasını engeller,

aynı şekilde

where sutun=$degisken şeklinde kullanmanız query nizin bozulmasına neden olur, çünkü verinin baslangıc ve bitiş karakterleri yoktur.


Şöyle basit bir örnek verelim.

gelen verimizin Ahmet”in Ceketi olduğunu varsayalım

PHP:
1
2
3
$degisken = $_GET['veri']; 

"select * from tablo where sutun=$degisken"

Veriyi değişken yerine koyduğunuzda

PHP:
1
"select * from tablo where sutun=Ahmet"in Ceketi"


Şeklinde query de en baştaki ” ve en sondaki ” query aralığını belirtir, veride bir tane daha ” koyarsanız query orda biter yani where sutun=Ahmet” — devamı yok sayılır.
Ardından injection gerçekleşir. bunu şöyle yapsak

$degisken = addslashes($_GET['veri']);

burada verimizin çıktısı,

Ahmet\”in Ceketi şeklinde olacaktır. addslashes veriden gelen ” karakterinin query e ait olmadığını ibare edecek yani karakteri es geçmesini (görmezden gelmesini) sağlayacak \ karakterini ekler,

şayet where sutun=’$degisken’ şeklinde kullanırsanız, query i dahada kısıtlamış olursunuz, mysql başlangıc berlireçleri yanı sıra, where sutun kısmında da bir kısıtlayıcı eklemiş olursunuz.

Alıntı
 

En Çok Reaksiyon Alan Mesajlar

Teşekkür Ederim Biraz Görsellik Katarsan Daha Güzel Bir Konu Olabilir :)
 
Teşekkürler.
 
Teşekürler Çok yararlı Bir Konu
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst