2015-09-04 44 views
-5

这应该是防止黑客攻击的一部分。这个想法是在发现黑客攻击后,让黑客/攻击者等待很长时间。如何让网站或PHP脚本无限期地加载?

这种尝试的检测不是我的问题的一部分。 我只需要知道是否有可能创建一个PHP脚本,它将继续加载,就像网站/服务器异常缓慢一样,最好不要通过保持打开的连接创建高服务器负载。

我认为必须有一些方法来简单地停止服务器上的PHP脚本,而不通知用户/客户端将不会有来自服务器的响应。或者也许类似的东西?

+0

我怀疑这是不可能的。连接必须保持打开状态,否则客户端知道服务器已完成(连接终止时)。你可以设置你的PHP最大执行时间为一些高值,并做这样的事情'while(true){sleep(10); }'这不会消耗周期。 – CollinD

+2

PHP的最大执行时间为30秒(可以自定义),但我不会推荐这个。您最好返回一个没有内容的错误请求响应。并且继续为攻击者提出的每个请求返回。 –

+0

没有攻击者是愚蠢的,对不起。攻击脚本使用超时不会浪费时间。 – arkascha

回答

0

要做到这一点是使用sleep()最简单的方法,但有一个巨大的缺点:

虽然sleep()不使用任何CPU时间,连接必须保持开放的很长一段时间(这意味着你可以达到你的服务器上的连接限制),而PHP进程将无用地运行(这消耗了相当多的内存,也可能使你达到一个进程限制)。

所以这意味着你认为是攻击者的人实际上会有更多的杠杆来对你的网站运行拒绝服务攻击。

我不认为有一个资源友好的方式,只用PHP就可以做到这一点。

+0

你指出什么与php无关。这是一个普遍的事实。 – arkascha

+0

但由于Web服务器的设置方式和每个进程的内存消耗,这对PHP来说是一个更大的问题。 – hanzi

+0

对不起,但为什么应该这样呢? “网络服务器设置”和“内存消耗”有什么特别之处? Web服务器与其他任何程序一样是一个简单的过程。 PHP是一种简单的脚本语言,就像任何其他语言一样。这里没什么特别的。 – arkascha