簡體   English   中英

保護PHP腳本不受CSRF的干擾…無需php會話(跨站點)

[英]protect php script against csrf…without php session (cross site)

我有一個將POST數據發布到PHP腳本的公共表單。

此表單不在同一域中,也不使用PHP,因此無法圍繞PHP會話構建保護。

目標是允許此表單在 PHP腳本上發布。

如何為檢查請求的源提供更多安全性,告訴我如何使用PHP會話實現CSRF保護,但是我想知道如果沒有它我該如何保護我的? 可能嗎?

與GET請求相比,POST請求更難偽造,因此您可以滿足要求,這很好。 只要確保您在腳本中沒有使用$ _REQUEST。

您不能在此處使用會話,但是原理是相同的-您必須在表單和PHP腳本之間實現某種“握手”。 如果無法選擇會話,則有幾種不同的方法。

最簡單的操作是檢查http引薦來源網址。 如果表單位於http上並且腳本位於https下,則此方法將不起作用,也可以使用開放重定向漏洞來克服。

另一種方法是驗證碼。 我知道,這些天不友好或時髦,但這會使偽造請求變得更加困難,因為黑客無法在沒有任何用戶輸入的情況下在后台進行利用。 您應該查看reCAPTCHA(Google的“我不是機器人”復選框): https : //www.google.com/recaptcha/intro/index.html

這是一個棘手的情況,因為一台主機上的表單和另一台主機上的腳本本身基本上就是CSRF,因此您只允許一台主機使用它。 在這里,沒有任何用戶交互而沒有完全的安全性可能是不可能的,因此,請嘗試使可能成為黑客的人盡可能地使腳本混亂或在UX方面受苦。 我個人會選擇reCAPTCHA。

暫無
暫無

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

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