我有page.php
它接收POST數據,它位於已知的位置。 如何獲取通過POST發送數據到page.php
的每個頁面的url或如何阻止/允許來自某些站點的POST數據?阻止某些站點的POST數據
0
A
回答
4
您可以(雖然不可靠)通過$_SERVER['HTTP_REFERER']
獲取引薦頁面的網址。但是,有一些情況會出現空白(通常來自HTTPS站點)。
限制哪些網站可以導致瀏覽器向您的腳本提交數據將被接受的唯一可靠方法是實施針對CSRF的保護,並停止所有所有不屬於您的網站的網站。
生成隨機令牌。將該令牌存儲在Cookie或會話中。將其存儲在表單中的隱藏輸入中。提交表單時,檢查表單中的標記是否與Cookie /會話中的標記匹配。如果沒有,那麼提交數據的表單不在您的網站上。
我使用PayPal IPN,所以我需要檢查,如果POST來自貝寶
你試圖解決這個問題的錯誤的方式。
閱讀Paypal's IPN documentation。他們提供了一種方法來確定事件是否來自他們。
- 貝寶的HTTP POST的監聽器,通知您事件的IPN消息。
- 您的監聽器向PayPal返回空的HTTP 200響應。
- 您的聽衆HTTP將完整的,未更改的消息發送回PayPal;該消息必須包含與原始消息相同的字段(以相同順序) ,並以與原始消息 相同的方式進行編碼。
- PayPal發回一個單詞 - 要麼是VERIFIED(如果郵件與原始郵件匹配),要麼是INVALID(如果郵件與原始郵件不符 )。
1
可以驗證的形式是從某個頁面做這樣的事情:
在表單中的值與頁面旁邊加上隨機隱藏的價值,並保存到會話:
<?php
session_start();
$_SESSION['csfr_token'] = $randomValue; // Randomly generated string
$_SESSION['csfr_page_url'] = ; // URL of the current page
?>
<input type="hidden" name="csfr_token" value="<?php echo $randomValue; ?>" />
上述顯然只適用於如果您使用的表單,如果不是,然後使用任何您使用的方法將csfr_token
添加到帖子。
然後管理崗位:
<?php
session_start();
if (isset($_SESSION['csfr_token']) && $_POST['csfr_token'] && $_SESSION['csfr_page_url'] && $_SESSION['csfr_token'] === $_POST['csfr_token'] && $_SESSION['csfr_page_url'] === 'the URL that you want to allow') {
// Do your stuff
} else {
// Post isnt valid
}
更新:
我認爲以下問題涉及:Verifying a Paypal transaction via POST information
相關問題
- 1. 阻止PHP站點中的某些瀏覽器擴展
- 2. 阻止某些網站訪問某個文件
- 3. 如何阻止某些設備和某些瀏覽器阻止訪問我的網站?
- 4. 阻止我的網站上的某些設備和瀏覽器
- 5. 阻止訪問您網站的某些特定IP地址
- 6. 如何阻止某些IP(用戶)訪問我的網站?
- 7. 使用PHP阻止網站的某些區域
- 8. 靜態內容會阻止網站中的某些圖像
- 9. 在我的網站上阻止某人?
- 10. 阻止QGraphicsView的某些鼠標事件
- 11. 阻止某些網頁與htaccess的
- 12. 阻止某些類的AOP代理
- 13. 如何阻止某些座標的龜?
- 14. Spring數據MongoDB阻止持久化某些字段
- 15. JQuery location.reload();阻止POST到數據庫
- 16. 某些網站如何阻止您離開?
- 17. 在網站POST請求中阻止CSRF
- 18. 檢測某個特定的站點,javascript是否被阻止
- 19. POST或GET驗證REST中的某些數據端點?
- 20. 阻止訪問基於某些條件下某些航線 - angularjs
- 21. 使用java阻止某個網站
- 22. 阻止某些文件上傳
- 23. 阻止某些IP訪問您AWS EC
- 24. 硒 - 阻止某些元素出現
- 25. 阻止SVN訪問某些用戶
- 26. 如何屏蔽/阻止某些IRQ
- 27. 如何使用CodeIgniter阻止某些URL?
- 28. 阻止函數查找某些函數的對象原型?
- 29. 拒絕某些用戶的某些POST
- 30. 使用站點的IP阻止請求
但我怎麼能阻止POST數據? – Xriuk
您使用'if'語句,生成一條錯誤消息和'exit'。 – Quentin
是的,但我需要每次都能正常工作,HTTP_REFERER無法工作 – Xriuk