Get a Pentest and security assessment of your IT network.

Cyber Security

PHP Bot Detection

TL;DR

This guide shows simple ways to spot bots in your PHP applications. We’ll cover checking user agents, using CAPTCHAs, looking for unusual activity, and basic IP address blocking.

1. Check the User Agent

Bots often have identifiable user agent strings. Humans usually use web browsers like Chrome, Firefox or Safari. You can check this in PHP:

Important: Bots can *spoof* user agents. This isn’t foolproof.

2. Implement CAPTCHAs

CAPTCHAs (Completely Automated Public Turing test to tell Computers and Humans Apart) are a common way to verify humans. There are several PHP libraries available, such as reCAPTCHA from Google:

  • Google reCAPTCHA: Requires setting up an account with Google and adding keys to your PHP code.
  • Simple Image CAPTCHAs: You can create basic image-based CAPTCHAs yourself, but they are easier for bots to solve.

Example (basic concept – you’d need a full library implementation):

3. Monitor for Unusual Activity

Bots often behave differently than humans:

  • High Request Rate: A single IP address making many requests in a short time is suspicious.
  • Fast Form Submission: Humans take time to fill out forms; bots submit them instantly.
  • Invalid Data: Bots might try submitting nonsensical data.

Example (checking request rate – simplified):

 10) {
  // Too many requests from this IP!
  echo "Rate Limit Exceeded";
}
?>

Note: This is a basic example. You’ll need to adjust the threshold (10 in this case) based on your application.

4. Basic IP Address Blocking

If you identify malicious IPs, you can block them:

  • .htaccess: Add rules to your .htaccess file to deny access from specific IPs.
  • Firewall: Use a firewall (e.g., iptables) for more robust blocking.

Example (.htaccess):

<FilesMatch ".*">
Order Deny,Allow
Deny from 123.45.67.89
Allow from all
</FilesMatch>

Warning: Blocking IPs can accidentally block legitimate users. Be careful!

5. Session Management

Proper session management helps identify bots that don’t handle sessions correctly.

  • Session ID Validation: Check if the session ID is valid and hasn’t been tampered with.
  • Session Timeout: Implement a reasonable session timeout to prevent long-lived bot sessions.

6. Honeypots

Add hidden form fields that only bots are likely to fill out. If these fields are populated, it’s a strong indicator of a bot.

<input type="text" name="honeypot" style="display:none;">

7. Cyber security Considerations

These methods provide basic protection. For robust cyber security, consider using:

  • Web Application Firewalls (WAFs): Protect against common web attacks and bot traffic.
  • Bot Management Services: Specialized services that detect and mitigate bots effectively.
Related posts
Cyber Security

Zip Codes & PII: Are They Personal Data?

Cyber Security

Zero-Day Vulnerabilities: User Defence Guide

Cyber Security

Zero Knowledge Voting with Trusted Server

Cyber Security

ZeroNet: 51% Attack Risks & Mitigation