我有一個關於令牌的問題。我知道它們是用於安全目的的隨機字符,但它們是如何工作的以及它們能抵禦什麼?PHP令牌的形式和認證
回答
身份驗證機制在表單顯示時創建一個令牌,並將其存儲在服務器端。 另外,auth機制將令牌作爲隱藏輸入添加到表單中。發送它時,auth系統檢查是否在服務器端存儲中。 如果發現令牌,認證過程將繼續並且令牌被刪除。
它可以防止垃圾郵件形式的動作腳本。
實施例與註銷URL使用:
<?php
// Generate token
$logout_token = md5(microtime().random(100, 999));
session_start();
// Store token in session
if (!is_array($_SESSION['logout_tokens']) {
$_SESSION['logout_tokens'] = array();
}
$_SESSION['logout_tokens'][] = $logout_token;
?>
<a href="/logout/?logout_token=<?= $logout_token ?>">logout</a>
腳本,該處理註銷:
<?php
$done = false;
if (!empty($_GET['logout_token'])) {
// Get token from url
$logout_token = $_GET['logout_token'];
session_start();
if (!is_array($_SESSION['logout_tokens']) {
$_SESSION['logout_tokens'] = array();
}
// Search get token in session (server-side storage)
if (($key = array_search($logout_token, $_SESSION['logout_tokens'], true)) !== false) {
// Remove used token from storage
unset($_SESSION['logout_tokens'][$key]);
// Do logout
$done = true;
}
}
if ($done === false) {
echo "Something went wrong.";
}
什麼時候令牌作爲URL參數傳遞?這是如何運作的? – 2012-02-21 07:28:13
用於驗證請求的令牌。它可以在服務器端創建,也可以從請求參數創建。但是,如果你想得到很好的保護,你應該將令牌生成機制隱藏起來。 它可以通過服務器可以讀取的任何方式進行傳遞。 – Electronick 2012-02-21 07:28:58
所以,你可以告訴我一個當它用作URL參數時如何工作的例子。示例:http://www.example.com/logout.php?hash=6556jhntrh67&logout=true – 2012-02-21 07:33:20
- 1. Rails認證令牌和Ajax
- 2. 角2和令牌認證
- 3. 的ActionController :: InvalidAuthenticityToken:與認證令牌的形式
- 4. HTTP令牌認證
- 5. 令牌認證和XSRF/XSS保護
- 6. 如何結合令牌認證和CRSF?
- 7. Laravel護照認證和令牌生成
- 8. Django DRF令牌認證
- 9. Rails-api HTTP令牌認證
- 10. 保護與認證令牌
- 11. REST API令牌認證
- 12. Owin使用令牌認證
- 13. WCF定製認證 - 令牌
- 14. 找不到'System.IdentityModel.Tokens.X509SecurityToken'令牌類型的令牌認證器
- 15. 無法找到「Microsoft.IdentityModel.Tokens.Saml2.Saml2SecurityToken」令牌的令牌認證器
- 16. CSRF令牌多種形式
- 17. 的Rails 3 - 基本的HTTP認證VS認證令牌與iPhone
- 18. 基於令牌的認證6
- 19. REST風格的webservice + Spring令牌認證
- 20. 基於令牌的認證與角
- 21. Rails:從零開始的令牌認證
- 22. 帶有承載/令牌認證的JSZipUtils
- 23. 使用PHP的移動設備的令牌認證
- 24. Asp.net MVC 5.1.0.0和形式的認證
- 25. AWS認證返回 - '登錄令牌無效。不是Cognito令牌'
- 26. *畸形訪問令牌 - 但它的令牌,我得到(PHP)
- 27. HTTP認證和PHP認證
- 28. Symfony認證令牌getCredentials返回null
- 29. 使用Rails令牌認證,並制定
- 30. Json Web令牌+用戶認證
令牌被添加用於保護跨site_request_forgery,也這不僅是爲了吸引有方式,存在是sql注入,XSS,http://en.wikipedia.org/wiki/Cross-site_request_forgery。另外一個PHP實現http://csrf.htmlpurifier.org/ – 2012-02-21 07:15:58
你能告訴我一個PHP中令牌的例子,以及它們如何使用? – 2012-02-21 07:24:05