ipasis

Detect Bots on Login & Stop Credential Stuffing

Protect your authentication endpoints from automated attacks. IPASIS identifies bot login attempts through IP reputation analysis, connection type detection, and proxy/VPN identification — before credentials are even checked.

Why Login Protection Matters

🔐

Credential Stuffing

Attackers use leaked username/password combos from data breaches to automatically test thousands of login attempts per minute.

Brute Force Attacks

Bots systematically try common passwords or variations, overwhelming your servers and potentially breaking into accounts.

💸

Account Takeover

Once a bot successfully logs in, it can steal data, make fraudulent purchases, or pivot to attack other users.

How IPASIS Identifies Bot Login Attempts

1

IP Reputation Check

Cross-references the login IP against global threat databases, identifying IPs with a history of credential stuffing, brute force attacks, or fraud.

2

Proxy & VPN Detection

Detects VPNs, proxies, Tor nodes, and anonymizing services commonly used by attackers to hide their origin and evade IP-based rate limiting.

3

Connection Type Analysis

Flags datacenter IPs and hosting providers. Legitimate users typically log in from residential ISPs, not AWS or DigitalOcean.

4

Real-Time Risk Score

Returns a trust score (0-100) in under 20ms, allowing you to block, challenge, or allow the login attempt before touching your database.

Implementation Example

Check every login attempt with IPASIS before verifying credentials:

// Backend login handler (Node.js/Express example)
import axios from 'axios';
import bcrypt from 'bcrypt';

app.post('/api/login', async (req, res) => {
  const { email, password } = req.body;
  const userIP = req.ip;

  try {
    // Check IP with IPASIS BEFORE database lookup
    const ipasisResponse = await axios.post('https://api.ipasis.com/check', {
      ip: userIP,
      email: email  // Optional: also validate email
    }, {
      headers: {
        'Authorization': `Bearer ${process.env.IPASIS_API_KEY}`,
        'Content-Type': 'application/json'
      }
    });

    const { trustScore, signals } = ipasisResponse.data;

    // Block high-risk login attempts immediately
    if (trustScore < 30) {
      await logBlockedLogin({ email, ip: userIP, trustScore, signals });
      return res.status(403).json({
        error: 'Login blocked',
        message: 'Suspicious activity detected. Please contact support.'
      });
    }

    // Require 2FA/CAPTCHA for moderate risk (30-60)
    if (trustScore < 60) {
      // Implement additional verification
      return res.status(401).json({
        error: 'additional_verification_required',
        message: 'Please complete additional verification',
        requiresCaptcha: true
      });
    }

    // Proceed with normal login flow for trusted IPs (60+)
    const user = await getUserByEmail(email);
    
    if (!user) {
      return res.status(401).json({ error: 'Invalid credentials' });
    }

    const passwordMatch = await bcrypt.compare(password, user.passwordHash);
    
    if (!passwordMatch) {
      await logFailedLogin({ email, ip: userIP, trustScore });
      return res.status(401).json({ error: 'Invalid credentials' });
    }

    // Generate session token
    const token = generateAuthToken(user.id);
    
    res.json({ 
      success: true, 
      token,
      userId: user.id 
    });

  } catch (error) {
    console.error('IPASIS check failed:', error);
    // Fallback: proceed with normal login but log for review
    // (Your existing login logic here)
  }
});

💡 Best Practice: Layer IPASIS with rate limiting and progressive delays. Block score <30, challenge 30-60 with CAPTCHA, and combine with per-IP rate limits for maximum protection.

Key Benefits

89%

Fewer credential stuffing attempts

3x

Faster than database lookups

Zero

False positives with proper thresholds

Protect Your Login Endpoints Today

Start with 1,000 free checks per day. Integrate in minutes, not hours.

Start Free Trial

1,000 free requests/day • No credit card required • Full API access