Как предотвратить инъекции SQL при использовании Morphia с Java Java?
Я использую MongoDB с Morphia Object Document Mapper в Java EE.
@Override
public void removeTrustedDevice(String username, String cookieValue) {
MongoConnection conn = MongoConnection.getInstance();
TrustedDeviceDao dao = new TrustedDeviceDao(conn.getDatastore());
Query<TrustedDevice> query = dao.createQuery();
query.and(
query.criteria("username").equal(username),
query.criteria("cookieValue").equal(cookieValue)
);
List<TrustedDevice> deviceList = query.asList();
if (deviceList != null && !deviceList.isEmpty()) {
dao.delete(deviceList.get(0));
}
}
Есть ли вероятность отсутствия SQL-инъекций? Если да, то, пожалуйста, дайте мне предложение или пример для профилактики.
1 ответ
Я не скажу, что вероятность такой атаки равна 0, потому что хакеры умные, решительные типы, но я скажу, что вам не нужно слишком беспокоиться об этом и что за все мои годы работы с MongoDB и для него я Я никогда не слышал о такой атаке.
Атаки SQL-инъекции работают, частично, за счет того, что SQL-запросы анализируются и оцениваются на стороне сервера. Монго запросы поступают на сервер уже в Document
формат. Запросы MongoDB не поддерживают комментарии так же, как SQL, и поэтому вектор атаки недоступен. Поскольку запросы уже имеют четко определенный, структурированный формат и не анализируются на сервере, выполнить подобную атаку намного сложнее.