2011-11-21 74 views
4

我目前正在將NAB Transact支付網關集成到電子商務商店中。一旦支付完成後,NAB Transact系統會向我們的端點發送POST請求,以便我們處理結果。您可以通過IP安全地驗證請求嗎?

問題是,POST請求中沒有包含安全散列/標記,我們可以使用它來回發到NAB Transact系統以驗證請求是真實的並且沒有被欺騙。更糟糕的是,NAB Transact系統甚至沒有用於任何信息驗證的API,實質上是非常糟糕的安全性!

有沒有辦法可以安全地驗證這些請求?例如,檢查請求是否來自NAB交易系統運行的已知IP地址列表?或反向查找IP?有什麼選擇,你將如何在PHP中實現這一點?

是不是依靠IP認證不安全,因爲它可以被欺騙?

+0

您提出了多個問題。您應該創建第二個問題,詢問您應該如何實施身份驗證。 – mikerobi

+3

沒有不敬的意圖,但這是有安全經驗的人的工作。提出這樣的問題是瞭解可能的解決方案和問題的好方法,但採取一種即學即用的方法來實際實施安全措施,幾乎可以保證發生災難。 –

+2

@adam如果您沒有問題的答案,請勿發佈。 NAB交易是一種完全託管的解決方案,符合PCI規範,無需存儲,處理甚至輸入到我們的系統中。爲什麼我的問題只是針對NAB系統發佈的信息,NAB系統根據其文檔沒有正確的身份驗證手段。如果我對PCI合規性或安全性不熟悉,我不會知道與請求沒有安全令牌和API端點以驗證請求相關的問題。所以它不會像你一樣學習,這是5年的經驗。 – cappuccino

回答

0

的問題是,POST請求不包含安全散列/令牌 ,我們可以用它來發布回NAB的Transact系統 驗證該請求是真實的,而不是欺騙

燁 - 這是一個問題好嗎:)

不是依靠IP認證並不安全,因爲它可以 欺騙?

這不是安全的!

+0

爲什麼不解釋你將如何使用欺騙性IP執行TCP握手。 – ThiefMaster

+0

源路由:)? – paulsm4

1

基於IP地址的認證是好的,如果你:

  • 知道IP地址的列表(即由支付提供商所使用的那些)
  • 的IP地址是靜態的(很明顯,但如果請求實際上由提供者發送,而不是通過例如在「支付成功」頁面上的隱藏表格)
  • 他們立即通知你任何改變(或者你的腳本可能拒絕有效的請求或接受來自未被使用的IP的請求提供者)
  • all sys可以使用IP地址(即假設數據中心的支付提供商的服務器沒有使用一些糟糕的網絡設置)足夠信任不發送任何虛假通知。

欺騙源IP是不可能的,因爲TCP使用三方握手和欺騙IP握手會失敗。

所以基本上:如果滿足一些基本條件(見上),通過IP進行身份驗證是可以接受的,但當然如果他們提供了一種驗證通知的方法會更安全 - 可以通過調用API或通過使用加密簽名(更好,因爲它不能由於無法訪問的遠程服務器而失敗)。

+0

TCP/IP欺騙有很多種。並不是所有人都使用連接設置(3次握手)。他們中的任何一個,如果成功的話,都會破壞安全。 – paulsm4

+0

向我展示*一個*示例,瞭解如何正確創建帶有欺騙IP的** TCP **連接。 – ThiefMaster

+0

哦,即使通過默默無聞的安全性是一件非常糟糕的事情 - 潛在的攻擊者如何知道發送通知請求的目標URL呢? – ThiefMaster

相關問題