2015-01-09 37 views
1

定時攻擊的一個防禦措施是,如果呼叫未能通過挑戰,則根本無法響應請求,因爲這可能不會顯示有關比較的時間信息。如何不響應Google App Engine上的請求

Google App Engine/Flask中是否有方法不響應請求?

我認爲可以使用例如sleep(TIMEOUT)其中TIMEOUT大於App Engine響應的最長時間,但我擔心這會導致拒絕服務,因爲它將離開線程懸空。

+0

從我所瞭解的情況來看,這也可能導致調度程序啓動新的實例,這是您當前的實例「停止響應」或響應緩慢。 –

+0

@PaulCollingwood - 是的,四處都是壞人。 –

回答

2

不幸的不是。

事實上,它擊中路線意味着你的網絡服務已經'處理'了連接和損壞已經完成。

要做的最好的事情是abort(404)

如果您確實想要添加額外的防禦功能,則需要使用其他服務,但在應用程序級別上無法做任何事情。正如你所說,睡眠只會保持連接暢通。你最好的行動是儘可能低的開銷處理它。

+0

感謝PsyKzz。很高興知道。 –

+0

此外,如果您對請求進行時序敏感的驗證,由於關閉TCP連接提供了時間信息,因此您應該請求阻塞,直到經過一段時間。更好的方法是首先使用時序抗性算法。 – krait

+0

但是我會(如果擔心ddos攻擊)不使用時間敏感的方法。也許創建一個輔助服務來提供這個。或者至少確保你有正確的wgi設置來處理這些類型的請求。 – PsyKzz

相關問題