以下是一些常见的防黑客攻击代码:
- XSS攻击防御
- htmlspecialchars()函数,将特殊字符转换为HTML实体,例如:<转换为<
- 使用正则表达式过滤输入的数据,例如:preg_replace('/<1*>/', '', $string); 将非法的HTML标记删除
- 使用HTTP头部设置X-XSS-Protection,例如:header('X-XSS-Protection: 1; mode=block'); 启用浏览器的XSS过滤器
- SQL注入攻击防御
- 使用预处理语句和绑定参数,例如:$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username'); $stmt->bindParam(':username', $username);
- 过滤输入数据,例如:$username = mysqli_real_escape_string($conn, $_POST['username']); 将特殊字符转义
- 使用PDO连接数据库,并设置ATTR_EMULATE_PREPARES为false,例如:$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
- CSRF攻击防御
- 生成一个随机的CSRF令牌,并将其储存在会话中,例如:$_SESSION['csrf_token'] = bin2hex(random_bytes(32));
- 在表单中添加隐藏的csrf令牌,例如:
- 检查提交表单时的csrf令牌是否与会话中储存的一致,例如:if(isset($_POST['submit']) && $_POST['csrf_token'] === $_SESSION['csrf_token'])
以上仅是一些常见的防黑客攻击措施,实际应用中还需要根据具体情况进行细致的防护。
- > ↩