php ci csrf,Codeigniter(CI) 使用 CSRF 功能造成 POST 403

今天在工作上遇到在某一個開發站台 URL 在使用瀏覽器 和使用 JS 去 call URL 的 response 有不同的狀況

雖然是一樣開啟 URL,但 resquest 的方式不同造成的回應也有所不同,這就是之前在測試滲透技巧中的一環

狀況說明:

使用 POST 會出現 403 沒有權限 (JS)

使用 GET 可以出現正常的 response 200 (browser)

根據 HTTP 的規範,GET 一般用於資訊查詢,而 POST 一般用於更新修改資訊,也就是 HTTP 中為何要區別 GET、POST、PUT、DELETE 的操作

在此例狀況,由於在開發環境上,所以在系統面沒有針對 POST 進行限制,那遭遇 403 的狀況肯定另有其設定

細查後發現開發環境所使用的是 Codeigniter(CI) 的開發環境,在 CI 本身有一項 csrf protection 的安全功能主要是用來防禦 XSS 等類似的滲透攻擊,所以在執行 POST 的時候會產生安全性阻擋,防止你的網站被串改植入

若要解決這個狀況

1. 依照 csrf 的規範,使用 POST 時必須加入 token

2. 關閉 csrf,從此 POST 權限全開

詳細 csrf protection 設定可以參考官網 Security Class

請按讚:

喜歡 正在載入...

給 Mr. 沙先生一點建議

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值