這應該是防止黑客攻擊的一部分。這個想法是在發現黑客攻擊後,讓黑客/攻擊者等待很長時間。如何讓網站或PHP腳本無限期地加載?
這種嘗試的檢測不是我的問題的一部分。 我只需要知道是否有可能創建一個PHP腳本,它將繼續加載,就像網站/服務器異常緩慢一樣,最好不要通過保持打開的連接創建高服務器負載。
我認爲必須有一些方法來簡單地停止服務器上的PHP腳本,而不通知用戶/客戶端將不會有來自服務器的響應。或者也許類似的東西?
這應該是防止黑客攻擊的一部分。這個想法是在發現黑客攻擊後,讓黑客/攻擊者等待很長時間。如何讓網站或PHP腳本無限期地加載?
這種嘗試的檢測不是我的問題的一部分。 我只需要知道是否有可能創建一個PHP腳本,它將繼續加載,就像網站/服務器異常緩慢一樣,最好不要通過保持打開的連接創建高服務器負載。
我認爲必須有一些方法來簡單地停止服務器上的PHP腳本,而不通知用戶/客戶端將不會有來自服務器的響應。或者也許類似的東西?
要做到這一點是使用sleep()最簡單的方法,但有一個巨大的缺點:
雖然sleep()
不使用任何CPU時間,連接必須保持開放的很長一段時間(這意味着你可以達到你的服務器上的連接限制),而PHP進程將無用地運行(這消耗了相當多的內存,也可能使你達到一個進程限制)。
所以這意味着你認爲是攻擊者的人實際上會有更多的槓桿來對你的網站運行拒絕服務攻擊。
我不認爲有一個資源友好的方式,只用PHP就可以做到這一點。
我懷疑這是不可能的。連接必須保持打開狀態,否則客戶端知道服務器已完成(連接終止時)。你可以設置你的PHP最大執行時間爲一些高值,並做這樣的事情'while(true){sleep(10); }'這不會消耗週期。 – CollinD
PHP的最大執行時間爲30秒(可以自定義),但我不會推薦這個。您最好返回一個沒有內容的錯誤請求響應。並且繼續爲攻擊者提出的每個請求返回。 –
沒有攻擊者是愚蠢的,對不起。攻擊腳本使用超時不會浪費時間。 – arkascha