Yazar |
|
audtou
malatya
Kayıt: 31.08.2006 |
|
session nesnesine bi değişken ekleyerek yapabilirsin.Mesela kullanıcı isim-şifre bilgilerini girdikten sonra veritabanından sorguyu çekersin,eğer kullanıcı bilgileri doğruysa session'a bi nesne eklersin.
session.setAttribute("sifre","gecerli"); şeklinde
Sadece login olunarak girilebilen sayfaların başınada şu kodu eklersen
if(session.getAttribute("sifre") != "gecerli"){
response.sendRedirect("login.html"); /burda kullanıcıyı şifresi gecerli degilse login.html ye gönderirsin/
}
else{
-------
-------
}
bitiyo lan!
|
|
Yazar |
|
clairvoyant
Antalya
Kayıt: 05.05.2006 |
|
Ben login işlemini doğrulamak için sabit değer kullanılmasını güvenli bulmuyorum. Gerisini sildim :D
Let`s make this world a better place to live !
|
|
Yazar |
|
audtou
malatya
Kayıt: 31.08.2006 |
|
yada bi bean kullanarak yapabilirsin
public class oturumBean {
public oturumBean(){ }
private boolean isLogged=false;
private String isim;
private String soyIsim;
public boolean isIsLogged() {
return isLogged;
}
public void setIsLogged(boolean isLogged) {
this.isLogged = isLogged;
}
public String getIsim() {
return isim;
}
public void setIsim(String isim) {
this.isim = isim;
}
public String getSoyIsim() {
return soyIsim;
}
public void setSoyIsim(String soyIsim) {
this.soyIsim = soyIsim;
}
public void cikis(){
soyIsim="";
isim="";
isLogged=false;
}
}
kullanıcı bilgilerini aldıgın *.jsp nin başına şunları eklersin
<jsp:useBean id="oturum" scope="session" class="packageName.oturumBean" />
sonra kullanıcıdan bilgileri alıp veritabanından sorgulattırırsın
if(!oturum.isIsLogged()){
if(request.getMethod().equals("POST")){
String isim="",sifre="";
isim=request.getParameter("isim");
sifre=request.getParameter("sifre");
.....//veritabanı baglantısı
.....
ResultSet rs= xxx.executeQuery()
if(rs.next()){
oturum.setIsLogged(true);
oturum.setIsim(rs.getString("isim"));
oturum.setSoyIsim(rs.getString("soyIsim"));
}
else{
out.println("boyle birisi yok<a href='login.html'> geri git</a>");
}
}
else{
response.sendRedirect("login.html");
}
}
if(oturum.isIsLogged()){
-------//kullanıcı loginse yapacagın şeyler
------
}
ve login olmadan girilemeyecek her sayfaya şu kodu eklersin
<jsp:useBean id="oturum" scope="session" class="packageName.oturumBean" />
if(oturum.isIsLogged()){
...
...
}
else{
response.sendRedirect("login.html");
}
bide logout sayfasında şunları yaparsın
if(oturum.isIsLogged()){
oturum.cikis();
session.invalidate();
out.println("guvenli bir sekilde ciktiniz");
}
else{
response.sendRedirect("login.html");
}
bitiyo lan!
|
|
Yazar |
|
audtou
malatya
Kayıt: 31.08.2006 |
|
aslında iucoders'ta nasıl kontrol edildigini merak ettim.Orhan kendi yöntemini yazarsa iyi olur
bitiyo lan!
|
|
Yazar |
|
nipci
Kayıt: 26.09.2007 |
|
audtou yazdi | session nesnesine bi değişken ekleyerek yapabilirsin.Mesela kullanıcı isim-şifre bilgilerini girdikten sonra veritabanından sorguyu çekersin,eğer kullanıcı bilgileri doğruysa session'a bi nesne eklersin.
session.setAttribute("sifre","gecerli"); şeklinde
Sadece login olunarak girilebilen sayfaların başınada şu kodu eklersen
if(session.getAttribute("sifre") != "gecerli"){
response.sendRedirect("login.html"); /burda kullanıcıyı şifresi gecerli degilse login.html ye gönderirsin/
}
else{
-------
-------
}
|
Bahsettigim yol tam olarak bu.
Tek açığı da ; eger kullanıcı login olur, sonra da logout olarak cıkarsa, Browser kapanmadıgı surece girmemesi gereken url e, url i direk yazarak girebiliyor.
cikis.jsp de
oturum.removeAtribute(parametre)
oturum.invalidate()
yapıom ama işe yaramıo.
Bunun dısında baska acık yok.
Browser kapanırsa kesinlikle girilmemesi gereken sayfaya ulasamıyor.
Nasıl çözebilirim fikri olan var mı?
Bir de bu yöntem yeterince güvenli mi?(Ek olarak safagın dedigi gibi parametre degerini dinamik yapacam.Tabi su bahsettim sorunu cozebilirsem:))
|
|
Yazar |
|
audtou
malatya
Kayıt: 31.08.2006 |
|
nipci yazdi |
cikis.jsp de
oturum.removeAtribute(parametre)
oturum.invalidate()
yapıom ama işe yaramıo.
Bunun dısında baska acık yok.
Browser kapanırsa kesinlikle girilmemesi gereken sayfaya ulasamıyor.
Nasıl çözebilirim fikri olan var mı?
Bir de bu yöntem yeterince güvenli mi?(Ek olarak safagın dedigi gibi parametre degerini dinamik yapacam.Tabi su bahsettim sorunu cozebilirsem:)) |
aynı sorun bende firefox da olmuyor ama Operada maalesef oluyor.Hatta operada browseri kapatıp açsamda girilmemesi gereken sayfalara girebiliyor.Ben de bilmiyorum sebebini
bitiyo lan!
|
|
Yazar |
|
audtou
malatya
Kayıt: 31.08.2006 |
|
firefox da gayet güzel çalışan session lu sayfalar operada neden sapıtıyor ya?Bazı sayfalar sessiona ulaşamıyor bazıları sessiona yeni nesneler eklenmesine rağmen eski halinde kalıyor
Opera nın cache lemesiyle bi ilgisi varmı acaba?
bitiyo lan!
|
|
Yazar |
|
orhan
istanbul
admin
Kayıt: 17.11.2005 |
|
opera sayfayı cacheleyebiliyor bunun için sayfaya link verirken ucuna rastgele birşey ekleyebilirsin yada sayfayı komple cache kaparsın.
http://www.iucoders.com/pm.jsp?4.510173782244859
gibi
N/A
|
|
Yazar |
|
onur
Two Story Town
Kayıt: 14.01.2006 |
|
nipci yazdi | audtou yazdi | session nesnesine bi değişken ekleyerek yapabilirsin.Mesela kullanıcı isim-şifre bilgilerini girdikten sonra veritabanından sorguyu çekersin,eğer kullanıcı bilgileri doğruysa session'a bi nesne eklersin.
session.setAttribute("sifre","gecerli"); şeklinde
Sadece login olunarak girilebilen sayfaların başınada şu kodu eklersen
if(session.getAttribute("sifre") != "gecerli"){
response.sendRedirect("login.html"); /burda kullanıcıyı şifresi gecerli degilse login.html ye gönderirsin/
}
else{
-------
-------
}
|
Bahsettigim yol tam olarak bu.
Tek açığı da ; eger kullanıcı login olur, sonra da logout olarak cıkarsa, Browser kapanmadıgı surece girmemesi gereken url e, url i direk yazarak girebiliyor.
cikis.jsp de
oturum.removeAtribute(parametre)
oturum.invalidate()
yapıom ama işe yaramıo.
Bunun dısında baska acık yok.
Browser kapanırsa kesinlikle girilmemesi gereken sayfaya ulasamıyor.
Nasıl çözebilirim fikri olan var mı?
Bir de bu yöntem yeterince güvenli mi?(Ek olarak safagın dedigi gibi parametre degerini dinamik yapacam.Tabi su bahsettim sorunu cozebilirsem:)) |
Burada session daki sifreyi kontrol etmek pek dogru bir yontem degil tabiki.
Onun yerine session da "userLogged" gibi bir attribute koyarak kontrol etmek daha guzel olacaktir.
Bu isi session ile cozmektense audtou arkadasin soyledigi gibi session scope ta bir user bean tutup bunun property lerini bir method araciligiyla degistirme yontemi de olabilir.
cikis sayfasinda scopetaki user bean in logged in boolean degerini false a cekip
session.invalidate() seklinde session i da gecersiz kilarsaniz baska birsey yapmaniza gerek kalmaz.
Eger ciktiktan sonra hala login olunup da girilmesi gereken sayfaya ulasilabiliyorsa o girdigi sayfa ici kontollerinizde bir sorun vardir.
|
|
Yazar |
|
nipci
Kayıt: 26.09.2007 |
|
****************************************************************
<jsp:useBean id="oturum" scope="session" class="oturum.oturumBean" />
<%
if(oturum.IsLogged()){
oturum.cikis();
HttpSession o = request.getSession();
o.invalidate();
response.sendRedirect("index.jsp");
}
%>
********************************
Beanle de yaptım.
oturum.cikis(); false deger atıyor kontrol ettim.
Su ana kadar önerilen 2 yolda da aynı sorun var aslında sorun kodda deil, kodda olsa 2 yol da firefox da calısmazdı.
Bean le yapılan da yine firefox da sorunsuz calısıo , ama IE de yine önceki bahsettiğim problem mevcut.IE de illegal girişte bişiyi sil dersen o an yine listede görünüyor(yani sayfa yenilemesi işlemi yapmıo) ama siliyor.Bi sonraki legal açışta silindini goruosun.
IE ve (arkadas da opera da aynı sorun var demiş) opera da sorun oluo.
orhan yazdi | opera sayfayı cacheleyebiliyor bunun için sayfaya link verirken ucuna rastgele birşey ekleyebilirsin yada sayfayı komple cache kaparsın.
http://www.iucoders.com/pm.jsp?4.510173782244859
gibi |
Bu konuda bilgi verebilir misiniz?
|
|
Yazar |
|
orhan
istanbul
admin
Kayıt: 17.11.2005 |
|
sayfasyı bellekleme özelliğini kapamak için head tagları arasına
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
yada jsp içinden
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
sayfanın belleğe alınmamasını istiyorsan
<a href="x.jsp?<%=new java.util.Date()%>">link</a>
N/A
|
|
Yazar |
|
nipci
Kayıt: 26.09.2007 |
|
Herkese Tesekkurler sonunda oldu ....
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| | | | | | | | |