How can developers balance security measures like delays and IP blocking in PHP scripts without impacting user experience?

To balance security measures like delays and IP blocking in PHP scripts without impacting user experience, developers can implement these measures in a way that minimizes inconvenience to legitimate users. This can be achieved by setting reasonable delay times, providing clear error messages, and allowing users to easily verify their identity or request unblocking if necessary.

// Example code snippet for implementing IP blocking with a reasonable delay time

$blocked_ips = ['192.168.1.1', '10.0.0.1']; // List of blocked IP addresses

if (in_array($_SERVER['REMOTE_ADDR'], $blocked_ips)) {
    sleep(5); // Delay for 5 seconds before proceeding
    echo "Your IP address has been blocked. Please contact support for assistance.";
    exit;
}

// Continue with normal script execution