以下是一些在PHP中屏蔽扫描的实例,以及如何使用这些技巧来保护你的网站:
| 技巧 | 描述 | 代码实例 |

| --- | --- | --- |
| IP黑名单 | 阻止特定的IP地址访问网站 |
```php
if(in_array($_SERVER['REMOTE_ADDR'], array('123.45.67.89', '98.76.54.32'))){
die('Access denied');
}
```
| 限制请求频率 | 使用定时器限制来自同一IP的请求频率 |
```php
$limit = 10; // 每分钟允许的最大请求次数
$currentTime = microtime(true);
$lastRequestTime = $_SESSION['last_request_time'] ?? 0;
if(($currentTime - $lastRequestTime) < 60){
if($currentTime - $lastRequestTime < ($limit * 60 / 100)){
die('Request rate too high');
}
}
$_SESSION['last_request_time'] = $currentTime;
```
| 使用验证码 | 防止自动化扫描器通过表单提交 |
```php
session_start();
if(empty($_SESSION['captcha_code']) || $_SESSION['captcha_code'] !== $_POST['captcha_code']){
die('Invalid captcha');
}
// 在这里处理表单提交
```
| 检查HTTP Referer | 检查请求是否来自可信任的来源 |
```php
$allowedDomains = array('example.com', 'subdomain.example.com');
$referer = $_SERVER['HTTP_REFERER'];
if(!in_array(parse_url($referer, PHP_URL_HOST), $allowedDomains)){
die('Access denied');
}
```
| 限制用户代理 | 阻止来自特定浏览器或工具的请求 |
```php
$disallowedUserAgents = array('bot', 'scanner');
$userAgent = $_SERVER['HTTP_USER_AGENT'];
if(in_array($userAgent, $disallowedUserAgents)){
die('Access denied');
}
```
| 错误处理 | 使用自定义错误页面来避免泄露敏感信息 |
```php
function handle_error($errno, $errstr, $errfile, $errline){
// 自定义错误处理
echo 'An error occurred. Please try again later.';
return true;
}
set_error_handler('handle_error');
```
通过使用上述技巧,你可以有效地屏蔽扫描,保护你的网站免受自动化扫描器的侵害。







