Безпека
Захист від SQL injection
На строні сервера зроблено модуль для перевірки запитів на можливий вміст SQL ін'єкції. Перевірка відбувається за сигнатурою (входження сигнатури у якості підрядка у рядок). Для цього впровадженно окремий файл, який містить сігнатурні рядки такого способу проникнення у систему. Перевірка викликається під час переходу до нової сторінки додатку та виклику АПІ, що унеможливлює проникнення у систему таким чином
Також, додатково можна задати власні перевірки через json-файл, які будуть додані до існуючих. Файл повинен відповідати наступній структурі:
[
"()", // рядок із сигнатурою, яка буде перевірятись
"^",
"*",
"like ",
"@variable"
]
Захист від XSS injection
Також, подібно до захисту від SQL injection зроблено захист від XSS injection. Реалізовано одразу декілька перевірок для захисту від XSS injection, а саме:
Firewall
- Перевірка входження сигнатури у якості підрядка у рядок (стоп слова)Екранування спецсимволів при внесенні та оновленні даних
-> Заміна в crud операціях<
,>
Екранування спецсимволів при відображенні даних в таблицях
->{{ }}
- Handlebars екранує текстовий контент
Є можливість вказати додаткові перевірки до вже існуючих. Файл повинен відповідати наступній структурі:
[
"onmouseover=", // рядок із сигнатурою, яка буде перевірятись
"onerror=",
"<meta",
"<script",
"vascript:",
"ondblclick="
]
CRUD операції
Усі операції, які відносяться до CRUD відбуваються за допомогою токена.
При внесенні чи оновленні даних відбувається додаткова перевірка та екранування спеціальних символів <
та >
Додаткові параметри
Додаткові параметри для перевірки, про які йшла мова у попередніх розділах, вказуються у файлі configServer.json
, який знаходиться <серверна директорія>/config/configServer.json
. У файлі вказуються такі додаткові поля:
{
"sqlInjections": [
"()", // рядок із сигнатурою, яка буде перевірятись
"^",
"*",
"like ",
"@variable"
],
"xssInjections": [
"onmouseover=", // рядок із сигнатурою, яка буде перевірятись
"onerror=",
"<meta",
"<script",
"vascript:",
"ondblclick="
]
}