2015-10-07 19 views
5

Bazı klasik ASP kodlarında ve bazı PHP'de eşzamanlı olarak bazı süper rahatsız edici kodlar buldum.Güvenlik: Kullanıcıların oturum değişkenlerini adlandırabilmeleri için yanlış olan ne olabilir?

Klasik ASP:

Dim id 
id = request.form("id") 

Session(id) = id 

PHP Yani

$_SESSION[$_GET["id"]] = $_GET["id"]; 

, yanlış burada ne çıkabilir ki? Açıkçası, bunları kaldıracağım ve daha iyi bir iş akışı kullanacağım.

DÜZENLEME: Açık olan problemler SQLi, XSS, varolan ve gerekli oturum değişkenlerinin üzerine yazılabilir. Bu dillerin oturum değişkenlerini nasıl ele aldığının iç işleyişini gerçekten bilmiyorum.

DÜZENLEME 2: Oturum değişkeninin değerleriyle gerçekten ilgilenmiyorum, onlara ad verebilme konusunda endişeliyim. Sadece rasgele değişken isimleri ile yapabileceğiniz bir şey varsa merak ediyorum.

+2

Eğer '$ _SESSION ile sonradan ne bağlı :-) bir milyon diğer olası şeyler varken [$ _ GET [ "id"]]' .... eğer bunu tekrarlarsanız, ve "gibi bir şey içeriyorsa. Geri kalanını hayal gücünüze bırakıyorum –

+0

Oturum içeriği kesinlikle XSS, SQLi ve diğer kötü amaçlı giriş sanitizasyon istismarları için kullanılabilir. Birisinin kodunda kendi değişkenlerinizi isimlendirebilme yeteneği ile neler yapabileceğinizi merak ediyorum. – TheMonarch

cevap

3

Herhangi bir sayıda oturum değişkenini ayarlayabilirim - a1 a2 a3 a4 vb. Bir tür saldırı vektörü mü? Bellek saldırı ..

bu oturumu mysql sorgusunda değişkenleri kullanabilir hiç değilse - açıklamada belirtilen sql enjeksiyon klasik vaka (Değil sürece yeterli güvenliğini sahip olarak bu durumda büyük bir tehdit) birisi olarak

Eğer oturum değişkenini yankılanıyorsanız, XSS (Cross site injection) olasılığı vardır.

Eğer bunları CSRF tipi saldırılarda ve bir çok şeyde kullanıyorsanız.

Neden $ _SESSION kullanılacak [$ GET [ 'var']]

İlgili konular