Merhaba arkadaşlar,
$_GET istekleri için nasıl güvenlik önlemleri alıyoruz bu konu hakkında fikirlerinizi almak istedim.
Şahsen eğer id alıcaksam;
$Deger = (int)$_GET["id"];
$Deger = mysql_real_escape_string($Deger);
en son da intval($Deger);
şeklinde kontrol ediyorum.
Sizce neler olmalı veya nasıl kontrollerden geçirmeliyiz, standartlar nelerdir ?
$_GET İstekleri için Güvenlik Önerileri
17
●410
- 14-12-2018, 00:21:43
- 14-12-2018, 00:28:04if(isset($_GET['id'])){
$kullaniciid = htmlspecialchars(strip_tags($_GET['id']));
$kullaniciid = str_replace("'","",$kullaniciid);
$kullaniciid = str_replace("<","",$kullaniciid);
$kullaniciid = str_replace(">","",$kullaniciid);
$kullaniciid = str_replace(",","",$kullaniciid); } - 14-12-2018, 00:30:13Üyeliği durduruldunormal metin için
trim(strip_tags(htmlspecialchars($degisken)))
bu yeterli olacaktır.
Bunun yanında aldıgınız $_GET degişkenindeki veriyi veritabanında kullanmıyorsanız sadece eşleştirme yapacaksanız filtreye bile gerek yoktur
örnegin
if(isset($_GET["ali"]) && $_GET["ali"] == 'odemesayfasi')
- 14-12-2018, 00:31:38Güzel fikirler geliyor peki bunlar aşılamaz mı arkadaşlar en garanti çözümler sizce nelerdir?
- 14-12-2018, 00:32:05Üyeliği durdurulduHiçbir sistem güvenli degildirfreguencey adlı üyeden alıntı: mesajı görüntüle
- 14-12-2018, 00:34:26KesinlikleSolutions adlı üyeden alıntı: mesajı görüntüle

Ancak en iyi algoritma ile birçok açık kapatılabilir, standart veya standart dışı en garanti yolları bulmak beyin fırtınasıyla oluşur
- 14-12-2018, 00:35:36Eğer id veritabanı işleminde kullanılacaksa özel olarak filitreleme yapmanıza gerek yok sadece pdo kullanmanız yeterli sizin için pdo halledecektir. Örnek bir kod;
$query=$db->prepare("SELECT * FROM users WHERE id=?"); // Önce sql kodumu hazırladım. // Dışarıdan gelecek veriyi soru işareti olarak bıraktım $query->execute(array( $_GET["id"] )); // şimdi soru işareti yerine $_GET["id"] ile kullanıcıdan aldığımız veriyi koymasını söyledik. // Eğer birden fazla veri varsa birden fazla soru işareti kullanmak mümkün // Ya da soru işareti yerine bazı tanımlayıcılarda kullanılabilir. // Örneğin; $query=$db->prepare("SELECT * FROM users WHERE id=:id"); // şimdi :id diyerek nasıl kullanacağımızı belirttik. $query->execute(array( "id"=>$_GET["id"] ));