Session驗證和優缺點
session驗證
.使用者訪問需要保護的資源時,可以使用Session驗證的方式保證其安全性,比如要求登入後才能訪問的資源.
.實現Session驗證,遵循以下步驟:
-1.使用Session.setAttribute()先繫結資料
-2.使用Session.setAttribute()方式來讀取繫結值,如果沒有,則跳轉回登入頁面
session超時
.Web伺服器會將空閒時間過長的Session物件刪除以節省伺服器記憶體空間資源.
.Web伺服器預設的超時時間限制:一般是30分鐘
如何修改Session的預設的時間限制
1.修改tomcat的conf/web.xml配置檔案
<session-config>
<session-timeout>30</session-timeout>
</session-config>
2.通過程式設計的方式修改
session.setMaxIncativeInterval(int seconds);
瀏覽器禁用Cookie的後果:
.如果瀏覽器禁用Cookie,Session還能用嗎?
答案:不能,但是有其他解決方案
.伺服器在預設情況下,會使用Cookie的方式將SessionId傳送給瀏覽器,如果使用者禁止Cookie,則SessionId
不會被瀏覽器儲存,此時,伺服器可以使用如URL重寫這樣的方式來發送SessionId
什麼叫URL重寫
:瀏覽器在訪問伺服器上的某個 地址時,不再使用原來的那個地址,而是經過改寫的地址(即:在原來的地址後面加上
SessionId).
response.sendRedirect(response.encodeRedirectURL("index.jsp"));
如果是連結地址或表單(get方式提交)提交,使用
response.encodeURL(String url)生成重寫後的URL
如果是重定向:
response.encodeRedirectURL(String url).
session的優缺點:
.優點:
-安全:(將狀態儲存在伺服器端)
-session能夠儲存的資料型別更加豐富,Cookie只能儲存字串
-Session能夠儲存更多的資料,Cookie大約儲存4k.
缺點:
-session將狀態儲存在伺服器端,佔用伺服器記憶體,如果使用者量過大,會嚴重影響伺服器的效能
驗證碼的作用:
.為了防止機器人的破壞性操作,可以使用驗證碼技術來防止惡意的傳送資料
.驗證碼的本質上是一張動態產生的圖片
.圖片的內容會隨著程式的執行而隨機生成