它是通過任何可能的手段來讀取使用JavaScript的瀏覽器會話ID?讀會話ID使用Javascript
回答
是。由於會話ID是通過URL(document.location.href
)或通過cookie(document.cookie
)傳輸的,因此您可以檢查是否存在會話ID。
據我所知,一個瀏覽器會話沒有一個id。
如果你指的是服務器會話,通常存儲在cookie中。例如,ASP.NET存儲的cookie名爲「ASP.NET_SessionId」。
你可以通過發出上的document.cookie以下正則表達式接收會話ID:
警報(document.cookie.match(/ PHPSESSID = [^] + /));
在我的例子cookie的名稱來存儲會話ID是PHPSESSID(PHP服務器),只需更換與持有會話ID cookie名稱的PHPSESSID。 (由Web服務器配置)
你也許可以通過AJAX ping通內部的JavaScript服務器。 PHP文件可能看起來像:
<?php
session_start();
$id = session_id();
echo $id;
?>
這將返回當前會話ID。這是你在找什麼。
對於PHP的PHPSESSID變量,此功能的工作原理:
function getPHPSessId() {
var phpSessionId = document.cookie.match(/PHPSESSID=[A-Za-z0-9]+\;/i);
if(phpSessionId == null)
return '';
if(typeof(phpSessionId) == 'undefined')
return '';
if(phpSessionId.length <= 0)
return '';
phpSessionId = phpSessionId[0];
var end = phpSessionId.lastIndexOf(';');
if(end == -1) end = phpSessionId.length;
return phpSessionId.substring(10, end);
}
下可用於檢索JSESSIONID:
function getJSessionId(){
var jsId = document.cookie.match(/JSESSIONID=[^;]+/);
if(jsId != null) {
if (jsId instanceof Array)
jsId = jsId[0].substring(11);
else
jsId = jsId.substring(11);
}
return jsId;
}
這個正則表達式是否會返回除了一個值之外的任何數組?沒有全局修飾符,所以它只應該返回第一個匹配,否則如果不匹配,這可能是你想要的。 – RTF 2014-08-08 16:49:57
這裏有一個簡短而親切的JavaScript函數來獲取會話ID:
function session_id() {
return /SESS\w*ID=([^;]+)/i.test(document.cookie) ? RegExp.$1 : false;
}
或者,如果你更喜歡一個變量,這裏是一個簡單的一行:
var session_id = /SESS\w*ID=([^;]+)/i.test(document.cookie) ? RegExp.$1 : false;
應該匹配PHP,JSP,.NET的會話ID cookie,並且我還假設其他各種服務器端處理器。
更新2017年
var cookie = new URLSearchParams(document.cookie)
if(cookie.has("PHPSESSID")){
var sessionID = cookie.get("PHPSESSID")
}
- 1. Javascript:從cookie中讀出會話ID
- 2. 使用javascript從cookies獲取會話ID
- 3. 使用Javascript讀取會話值
- 4. ASP.NET使用會話ID
- 5. 會話用戶ID?
- 6. 如何從GET請求中知道會話ID時從會話ID中讀取
- 7. Javascript重定向頭或會話ID
- 8. 取消設置一個specefic會話中使用的會話ID
- 9. PHP:會話變量丟失,會話ID更改(使用Ajax)
- 10. 使用會話ID訪問會話數據
- 11. IIS + ASP.NET +多個會話使用隨機會話ID每分鐘
- 12. 如何使用會話ID獲取會話變量
- 13. 在Perl中使用Expect獲取產生會話的會話ID
- 14. 如何使用會話ID創建會話對象?
- 15. 使用特定的會話ID創建會話
- 16. Play Framework:使用會話ID獲取會話
- 17. 如何強制使用快速會話刪除會話ID cookie?
- 18. 重複使用另一個ASP.NET會話(設置會話ID)
- 19. 使用自定義會話ID處理PHP數據庫會話
- 20. 使用Spring Security檢索會話ID
- 21. 使用會話ID來抓取數據
- 22. 使用散列登錄會話ID
- 23. 使用會話ID的肥皂認證
- 24. 如何使用URLConnection添加會話ID
- 25. 使用jQuery獲取ASP.NET會話ID
- 26. 你如何閱讀使用JavaScript的HTML會話?
- 27. 是否可以使用Javascript讀取PHP會話?
- 28. 如何閱讀使用JavaScript的燒瓶會話?
- 29. 閱讀Rails 4使用Javascript的Cookie /會話
- 30. 在javascript中讀會話變量?
sarnath'd該死的你:)另外值得一提的一些平臺,可回收,可確定的方式編寫了這一點,以隱藏字段。 – annakata 2009-05-28 12:54:48