dökümanlar talep etmesine yardımcı olur. Tarayıcılar bu tür saldırıları gerçekleştirmede daha baskın bir rol alır; fakat tek yöntem değillerdir.(*)URI(Uniform Resource Identifier): İnternet üzerinde kullanılan, bir kaynağı isimlendirmek veya kimliğini saptamak gibi işlemleri yapmakta kullanılan karakterler. Bu kimlikleme işlemi,özel protokoller kullanılarak World Wide Web gibi bir ağ üzerinde bu kaynağın yenidengösterilmesi ve sunulması şeklinde de yapılabilir.
Yalnızca POST Kullanan Uygulamalar Savunmasız Olabilir mi?
Evet. Eğer uygulama CSRF içeriyorsa, belirli bir bölgede çalıştırılan tarayıcı bileşenlerinikullanır. Herhangi bir web siteye remote POST isteklerini göndermek; XMLHTTP veya benzer şeyleri kullanarak mümkün olabilmektedir.Sadece POST tabanlı parametreleri kullanarak bir websitesine saldırmanın başka yolu davardır. Ama bu tamamen web uygulamasının nasıl programlandığına bağlıdır. Perl – CGI.PMgibi popüler web tabanlı kütüphaneler; GET veya POST istekleriyle gelmiş olmasına bakılmaksızın bir parametrenin çekilmesine izin verebilir. CGI.PM kullanımında olduğu gibi,saldırgan tarafından POST istekleri GET isteklerine dönüştürülebilir ve uygulama halaçalışıyor olacaktır. Aşağıda bir örnek:
Perl's CGI.PM
------------------------------use CGI qw(:all);$value = param('foo'); print "Content-type: text/html\n\n"; print "The 'foo' parameter value is $value\n\n\n";------------------------------Bu script, uygulamaya gönderilmek üzere ya GET ya da POST isteklerine izin verecektir. Busadece Perl ile sınırlı değildir ve kullandıkları kütüphaneye göre veya uygulamanın hangiyolla geliştirildiğine göre herhangi bir dilde de etkili olabilir. Eğer CGI.PM kullanıyorsanız veGET isteklerini engellemek istiyorsanız tek yol; '$ENV{'REQUEST_METHOD'}'kullanılarak kodlarınızın geri kalanını çalıştırmadan önce bir tarama yapmak için istek gönderme metodu uygulamaktır. Aşağıda, gönderilen GET veya POST istekleri için izin verendillerin, parametreleri çekmesini sağlayan genel yöntemler var.
JSP ÖrneğiGenelde Kullanılan
:request.getParameter("foo")
Çözüm
:HTTP istek metodunu kontrol edin ve istenilen eylemin gerçekleştirilmesinden öncePOST kullandığından emin olun.
PHP ÖrneğiGenelde Kullanılan
:$_REQUEST['foo']
Çözüm
:Sadece POST belirlemek için $_POST['foo'] kullanın.
Leave a Comment