Class: Dbviewer::Validator::Sql
- Inherits:
-
Object
- Object
- Dbviewer::Validator::Sql
- Defined in:
- lib/dbviewer/validator/sql.rb,
lib/dbviewer/validator/sql/threat_detector.rb,
lib/dbviewer/validator/sql/query_normalizer.rb,
lib/dbviewer/validator/sql/validation_config.rb,
lib/dbviewer/validator/sql/validation_result.rb
Overview
Sql class handles SQL query validation and normalization to ensure queries are safe (read-only) and properly formatted. This helps prevent potentially destructive SQL operations.
Defined Under Namespace
Modules: QueryNormalizer, ThreatDetector, ValidationConfig Classes: ValidationResult
Class Method Summary collapse
-
.safe_query?(sql) ⇒ Boolean
Determines if a query is safe (read-only).
-
.validate!(sql) ⇒ String
Validates a query and raises an exception if it’s unsafe.
Class Method Details
.safe_query?(sql) ⇒ Boolean
Determines if a query is safe (read-only)
19 20 21 22 |
# File 'lib/dbviewer/validator/sql.rb', line 19 def safe_query?(sql) result = validate_query(sql, allow_pragma: false) result.success? end |
.validate!(sql) ⇒ String
Validates a query and raises an exception if it’s unsafe
28 29 30 31 32 33 34 35 36 |
# File 'lib/dbviewer/validator/sql.rb', line 28 def validate!(sql) result = validate_query(sql, allow_pragma: true) if result.failure? raise SecurityError, result. end result.normalized_sql end |