Adı Soyadı : Öğrenci No

advertisement
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
%>
Download