#security #neo4j #graph-databases
#Безопасность #neo4j #графические базы данных
Вопрос:
Существуют ли какие-либо уязвимости в базах данных graph (если быть точным, то особенно Neo4j v2.0), такие как SQL-инъекции в базах данных на основе SQL, и как их преодолеть при внедрении?
Ответ №1:
Как и в случае с SQL, Cypher уязвим таким же образом, если используется конкатенация строк. Крайне важно обойти это использование параметров в Cypher.
Ответ №2:
Вы не указали, какой API и драйвер вы используете.
Если вы создаете запросы Cypher самостоятельно, убедитесь, что вы используете параметры Cypher:
{
"query" : "MATCH (x {name: {startName}})-[r]-(friend) WHERE friend.name = {name} RETURN TYPE(r)",
"params" : {
"startName" : "I",
"name" : "you"
}
}
Если вы используете драйвер для построения ваших запросов Cypher, я предполагаю, что драйвер решит это за вас, но вы можете захотеть ознакомиться с конкретной документацией.
Комментарии:
1. это шифр, который я использую для построения запросов.
Ответ №3:
На данный момент нет известных уязвимостей в Neo4j или других системах баз данных NoSQL, но я хотел бы сказать, что дыры в безопасности обычно связаны с приложениями, которые работают с системами баз данных. Я имею в виду, что Neo4j может быть безопасным сам по себе, но SQL-инъекция или другие подобные вещи связаны с приложением.
Например, если вы не проверяете, является ли пользовательский ввод массивом или нет, злоумышленникам удается выполнить sql-инъекцию с помощью методов NoSQL-инъекции. Дополнительная информация: https://www.owasp.org/index.php/Testing_for_NoSQL_injection
Также вы должны быть уверены в безопасности на стороне сервера, я имею в виду, что вы должны ответить на такого рода вопросы; правильно ли установлен Noe4j? Защищены ли учетные данные от атак методом перебора / угадывания или нет? и так далее..