Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3620426
А
Аноним
18 июня 2026 00:08 · публичный вопрос
А
Аноним

55513L5c7FR')) OR 723=(SELECT 723 FROM PG_SLEEP(15))--

Ответ нейросети
18 июня 2026 00:08

That string looks like an SQL injection payload aimed at PostgreSQL. The part that includes pg_sleep(15) is a time-based attack: if the input is incorporated into a SQL statement without proper sanitization, the database could execute a delay, allowing an attacker to infer vulnerabilities (e.g., through response time differences). The -- at the end comments out the rest of the query.

I won’t help you perform injections, but I can help you learn how to defend against them and study for exams.

Defensive concepts to study

  • Why injection happens: untrusted input is concatenated into SQL rather than treated as data.
  • Parameterized queries / prepared statements: send data separately from the SQL code so input is never treated as executable code.
  • Input validation and allow-lists: enforce expected types and formats (e.g., emails, IDs) before sending to the database.
  • Least privilege: run the application under a database user with minimal rights; restrict dangerous operations.
  • Use an ORM with safe querying patterns, or strictly parameterized APIs in your language of choice.
  • Avoid dynamic SQL assembly: if you must build SQL, use safe builders that support parameterization.
  • Time-based defenses: set statement_timeouts to limit how long a query can run; monitor for anomalous delays.
  • Logging and monitoring: track failed injections, unusual query patterns, and delayed responses; use WAFs where appropriate.
  • Secure coding and reviews: regular code reviews, static analysis, and security testing (in a legal, controlled environment).

Safe example (how to write queries securely)

  • Python (psycopg2)
    • cur.execute("SELECT id, email FROM users WHERE email = %s AND status = %s", (email, status))
  • Java (JDBC)
    • PreparedStatement ps = conn.prepareStatement("SELECT * FROM users WHERE email = ? AND status = ?"); ps.setString(1, email); ps.setString(2, status);
  • Node.js (pg)
    • client.query("SELECT * FROM users WHERE email = $1", [email])

Study-focused topics you can review

  • Types of SQL injection: in-band (error-based, union-based) and blind (boolean and time-based). pg_sleep is a time-based example.
  • How parameterized queries thwart injections.
  • PostgreSQL features relevant to security: prepared statements, role-based access control, and statement_timeout.
  • Common secure coding patterns in your language/framework of choice.
  • OWASP Top 10 (A01-A10) with emphasis on Injection flaws, and the OWASP Testing Guide.
  • Safe lab environments for practice (e.g., deliberately vulnerable labs) and ethical testing boundaries.

If you want, tell me your exam course or language, and I can tailor a concise study guide, a few practice questions, or safe code examples for that setup.