亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

基于 php 會話提高 Web 應用程序的安全性

基于 php 會話提高 Web 應用程序的安全性

PHP
Cats萌萌 2022-08-19 15:43:22
我有一個Web應用程序,我想改善它的安全漏洞,我讀了很多關于它的文章,但有些問題仍然沒有答案。感謝您的幫助。首先,我有一個登錄屏幕。用戶輸入其憑據后,將根據數據庫檢查它們(它們被正確散列;)),如果成功,服務器將創建一個會話變量//Jhon id = 1    $_SESSION["userID"]= '1';在每個php文件(例如儀表板.php)的開頭,我有以下代碼:       session_start();        if(isset($_SESSION['userID'])) {            if($_SESSION["userID"]==""){header("location:login.php");}        }else{            header("location:login.php");        } ?>    <html ...為了改進維護,我想將此代碼包含在外部php文件中,例如include('inc/restricted.php');?>        <html ...我的兩個主要問題是:1)如果入侵者處理損壞或拒絕訪問受限.php,儀表板.php的其余部分會顯示出來嗎?有可能做這樣的事情嗎?如果是,如何以將安全代碼作為外部文件包含在內的方式進行修復?2)正如你所看到的,我的會話變量的值很簡單(整數),我應該將它們更改為哈希值嗎?我以為php會話存儲在服務器端,但我讀到一些存儲在cookie上的php會話變量,現在我擔心創建具有隨機數和授予訪問權限的cookie的機會。
查看完整描述

1 回答

?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

  1. 如果此文件中的代碼不安全,則可能。由于我們看不到它,因此不可能說它是如何被損害的。但一般來說,面向Web的請求應該無法控制你的php代碼,除非你有一個嚴重不安全的設置。

  2. 這些值無關緊要。存儲在 中的數據永遠不會存儲在客戶端上,而只會存儲在服務器上。這在php中由接口控制(默認情況下,它以純文本文件的形式存儲在服務器上)。$_SESSIONsession.handlersession.save_path

傾向于使會話不安全的事情幾乎總是由于代碼編寫不當或服務器配置不當造成的。

您可以采取的一些措施來提高會話的安全性,如下所示:

  1. 在用戶登錄時始終使用(這可以防止會話固定攻擊)。session_regenerate_id(true)

  2. 當您注銷用戶時,始終刪除客戶端上的會話 Cookie(請參閱 http://php.net/session-destroy 中的第一個示例)。例如,當用戶從公共計算機登錄時,這可以防止會話接管攻擊,因為會話可能并不總是在服務器端立即刪除,并且cookie允許客戶端在服務器上重新觸發會話TTL。

  3. 僅通過安全連接傳輸會話 Cookie(請參閱session.cookie_secure

  4. 為了防止某些 XSS 和 CSRF 向量,請考慮使用 session.cookie_httponly 和 session.cookie_samesite 來防止惡意 JS 打開此類攻擊。

  5. 始終使用CSRF令牌以及所有修改請求,以保護用戶免受通過會話嚴格損害其訪問權限。這是一個額外的安全層。

請記住,這不是一個未刪節的列表。安全性是分層構建的,需要在用例和目標中進行大量深思熟慮。


查看完整回答
反對 回復 2022-08-19
  • 1 回答
  • 0 關注
  • 127 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號