Sorular Puanlar Adı Soyadı : Öğrenci No : 1 2 3 4 5 6 7 8 9 Toplam F.Ü EĞİTİM FAKÜLTESİ BİLGİSAYAR VE ÖĞRETİM TEKNOLOJİLERİ BÖLÜMÜ INTERNET TABANLI PROGRAMLAMA VİZE SINAVI 2011-2012 GÜZ SORULAR Sınav süresi 45 dakikadır. Sınav 120 Puan üzerinden değerlendirilecektir. Aşağıdaki soruları ASP veya PHP dili ile cevaplandırılabilir. Cevaplar ilgili boşluklar dışına taşmamalıdır ve açıklamalara uyulmalıdır. puanlandırılmayacaktır. Aksi takdirde cevap Soru 1: "<%=Text%>" ile aynı işlevi gören alternatif bir kod yazınız. (5 puan) Soru 2: <a href="page2.asp?color=green">Go</a> ile gönderilen “Color” değişkenini ekrana yazdıracak olan komutu yazınız. (10 puan) Soru 3: Session olarak tanımlanmış bir değişken tüm kullanıcılar tarafından ortak kullanılır (Doğru / Yanlış). (5 puan) Soru 4: Herhangi bir web sayfana yapılan geçmiş tüm ziyaretleri de kapsayacak bir sayaç kullanımı için Application nesnesi yeterlidir (Doğru / Yanlış). (5 puan) Soru 5: Veri tabanında bulunan DEFTER tablosundaki “ad” kolonundan “a” ile başlayan tüm satırları gösteren SQL değimini yazınız. (10 puan) Soru 6: Kullanıcının dosya adı olarak girmiş olduğu “Dosya” değerini inceleyen ve bu değerin içerisinden dosya uzantısını tüm hata ihtimallerini göz önünde bulundurarak tespit eden bir program yazınız. (20 puan) Örnek: “ekle.form.asp” Cevap: asp Soru 7: ASPSQLInjection güvenlik açığından korunmak için verilerin kontrolden geçirilmesi gerekmektedir. Bunun için ”get” metodu ile gönderilmiş olan “id” sayısının kontrol edildiği bir program parçası yazınız. (20 puan) Soru 8: XSS Güvenlik açığını engellemek için temel işlem, form verileri içerisinden “<script>” veya “</script>” kelimelerinin temizlenmesidir. Bunun için form elemanı olarak “post” metodu ile gönderilen “ad” değişkenin alındığı ve kontrol edildiği bir kod yazınız. (20 puan) Soru 9: Veri tabanına bir kuruma ait olan birimlerin isimleri eklenmektedir. Tabloda BirimID ve BirimADI olmak üzere iki kolon vardır. Bu kolonlara veri girişini yapabilmek için iki dosya geliştirilmiştir. Ekle_Form .asp dosyasında form oluşturulmuş ve bu formda “ad” diye bir input form elemanı eklenmiştir. Form method olarak “post” kullanıyor ise; • • • Forma kullanıcının girmiş olduğu bilgileri veri tabanına yazan ekle_islem.asp dosyasını oluşturunuz. (5 puan) Form elemanlarının XSS açığına maruz kalmasını temel seviyede engelleyiniz. (10 puan) Veri tabanına eklenecek olan birim adının tekrarlı olmamasını sağlayınız. (10 puan) Başarılar Dilerim Okt. Mustafa ULAŞ (31 Ocak 2011) NOT: Tüm cevaplar sadece soru için ayrılmış boşluğa yazılacaktır. Her soru için yapılan açıklamalara dikkat edin. Cevapları için bırakılan boşluklar, yeterli olacak şekilde ayrılmıştır. Ek kâğıt kullanılmayacaktır. Cevap1 Cevap 2 (Sadece tek satır yazılmalıdır) (En fazla iki satır yazılmalıdır) <% response.write(text)%> color=request.querystring(“color”) Response.write(color) Cevap 3 Cevap 4 (Sadece Doğru veya Yanlış yazılmalıdır) YANLIŞ YANLIŞ Cevap 5 (Sadece tek SQL komutu yazılacaktır.) Select * from DEFTER where ad like ‘a%’ Cevap 6 Cevap 7 (Cevap en fazla 5 satır olmalıdır.) (Cevap en fazla 5 satır olmalıdır.) Dosya=”ekle.form.asp” Noktayer=instrrev(dosya,”.”) Uzunluk=len(dosya) Uzantiboy= uzunluk-noktayer Uzanti=mid(dosya,noktayer+1,uzantiboy) Response.write(uzanti) id = Request.QueryString("id") if not isnumeric(id) or isnull(id) or id=”” then id=0 end if Cevap 8 (Cevap en fazla 5 satır olmalıdır. Ad=request.form(“ad”) ad=replace(ad,”<script>”,””) ad=replace(ad,”</script>”,””) Cevap 9 (Sadece ekle_islem.asp dosyasını belirtilen özellikleri sağlayacak şekilde yazınız.) <!--#include file=”baglanti.asp”--> <% Ad=request.form(“ad”) ad=replace(ad,”<script>”,””) ad=replace(ad,”</script>”,””) Set rs=server.createobject(“adodb.recordset”) Rs.open “select * from TABLO where ad=’”&ad&”’”, yol,1,3 if rs.eof then Rs.addnew Rs(“ad”)=ad Rs.update Else Response.write(“Kayıt veritabanında bulunmaktadır”) End if %>