簡體   English   中英

在php中利用會話進行身份驗證的正確方法是什么?

[英]What is the proper way to utilise sessions for authentication in php?

當前,我要做的是在成功登錄會話變量后存儲用戶的用戶名。

$_SESSION['session_loggedin'] = $post_username;

post_username是提交表單中的POST。

然后,我使用此會話變量來檢查它是否已設置,以查看用戶是否登錄。我使用此變量的值來顯示用戶特定的內容。

                <?php
                if (isset($_SESSION['session_loggedin'])) {
                    ?>
                        <a href="logout.php">LOGOUT</a>
                     <?php
                }
            ?>

這是會話的使用方式嗎? 這是安全顯示內容的正確方法嗎? 如何防止劫持?

謝謝

你快到了! 但是您應該在會話中存儲用戶的ID。 您查詢的數據庫中,用戶名等於發布用戶名,密碼等於發布密碼,計算返回的行數! 從那里,您存儲會話的用戶ID。

要查看如何使用PHP會話,請訪問: http : //www.w3schools.com/php/php_sessions.asp 否,因為我可以進入您的其他頁面(假設您有一些頁面)並輸入用戶名,即如果John Smith使用Password:password登錄就可以了,但是我可以進入您的網站並將John Smith設置為$_SESSION['session_loggedin']然后離開他的帳戶。 您可能會問,但是他怎么會知道$_SESSION['session_loggedin']如果他很聰明,他將創建一個用戶並捕獲會話並查看他需要輸入什么才能獲得對另一個帳戶的控制權。 而不是用戶名,我會推薦一個哈希碼!

劫持行為見此: 防止會話劫持的最佳方法是什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM