diff --git a/README.md b/README.md index 6bd15f0..3e3e3a1 100644 --- a/README.md +++ b/README.md @@ -32,13 +32,14 @@ Note that this service is not limited to 1C and can be utilized in other context * Secure Communication : Supports HTTPS for secure data transmission; * Efficient Connection Pooling : Utilizes a shared, reusable SQL connection pool with automated maintenance tasks to remove stale or dead connections; * Connection Limiting : Configurable maximum number of concurrent database connections to prevent resource exhaustion; -* Command Support : Currently supports all SQL commands with no limitation. The SELECT command returns query results as a flexible JSON-formatted recordset; +* Command Support : Currently supports all SQL commands with no limitation (I am familiar with SQL injection. Read below about security patterns). The SELECT command returns query results as a flexible JSON-formatted recordset; * Result Limitation : Allows configuration to limit the number of rows returned by SELECT statements; * Prepared Statements : supported; * BLOB read/write : supported; * Flexible Binding : Can bind to localhost or any specified IP address for enhanced security. By default, it is intended to bind to localhost and run alongside legacy software; -* Security Responsibility : Does not perform SQL query validation and any other security checks. It is the responsibility of DBA to configure appropriate database privileges. Keep in mind ADODB is the old-school engineering and this tool is the simple and quick replacement. All security-related work must be completed -first at SQL server — as it always was, long before the era of shiny new toys. Consider to implement ORM model in the future or another secure-driven patterns; +* Security : Does not perform SQL query validation and any other security checks (!). It is the responsibility of DBA to configure appropriate database privileges. Keep in mind ADODB is the old-school engineering and this tool is the simple and quick replacement. All security-related work must be completed +first at SQL server — as it always was, long before the era of shiny new toys. Never use admin accounts with this service! Does not expose it to the untrusted network! +Consider to implement ORM model in the future or another secure-driven patterns; * Monitoring and Metrics : Provides Prometheus metrics for performance monitoring and observability; ## API description diff --git a/README.ru.md b/README.ru.md index 7cf0c17..ca3dd18 100644 --- a/README.ru.md +++ b/README.ru.md @@ -37,12 +37,13 @@ + Защищённое соединение: при необходимости, поддерживает HTTPS для безопасной передачи данных; + Пул соединений: использует общий переиспользуемый пул SQL-соединений с регламентными задачами обслуживания для удаления устаревших или зависших соединений; + Ограничение соединений: настраиваемый лимит одновременных подключений к базе данных для предотвращения исчерпания ресурсов; -+ Поддержка языка SQL: поддерживает любые SQL-команды без ограничений. Команда SELECT возвращает результаты запроса в виде гибкого JSON-формата набора записей; ++ Поддержка языка SQL: поддерживает любые SQL-команды без ограничений (да, я знаю что такое "sql-инъекция", про отношение к безопасности читай ниже). Команда SELECT возвращает результаты запроса в виде гибкого JSON-формата набора записей; + Ограничение результатов: позволяет настраивать ограничения на количество строк, возвращаемых командами SELECT; + Поддержка подготовленных выражений: реализована; + Поддержка записи и чтения BLOB полей: реализована; + Гибкая привязка: может быть привязан к localhost или любому указанному IP-адресу для повышения безопасности. По умолчанию предполагается привязка к localhost и работа в паре с устаревшим программным обеспечением; -+ Ответственность за безопасность: не выполняет валидацию SQL-запросов. Ответственность за настройку соответствующих привилегий базы данных лежит на администраторе СУБД. Помните, что это простая и быстрая замена вызовов ADODB, который является "дедовской" технологией, и раз вы заинтересованы заменить его, то у вас уже должны быть настроены роли и пользователи на СУБД, в противовес тому что принято сейчас в смузи-технологиях. Не используйте учётную запись с административными привилегиями! Рассмотрите на будущее ++ Безопасность: сервис не выполняет валидацию SQL-запросов (!). Ответственность за настройку соответствующих привилегий базы данных лежит на администраторе СУБД. Помните, что это простая и быстрая замена вызовов ADODB, который является "дедовской" технологией, и раз вы заинтересованы заменить его, то у вас уже должны быть настроены роли и пользователи на СУБД, в противовес тому что принято сейчас в смузи-технологиях. Для работы с сервисом не используйте учётную запись с административными привилегиями! Сервис +изначально рассчитан для работы на localhost и публикация его на внешний IP-адрес сервера является рискованным занятием! Рассмотрите на будущее разработку ORM или других более безопасных паттернов разработки. + Мониторинг и метрики: предоставляет метрики Prometheus;