2017-01-11 1 views
-2

На данный момент мы используем APP_ID и JS_KEY, чтобы делать запросы для сервера синтаксического анализа. У нас есть регистрация на нашем сайте и после того, как пользователь проверки электронной почты может создавать группы, отправлять сообщения и т.д.Как защитить запросы от углового (или любого js) приложения (веб-сайта) для анализа сервера?

Это легко, чтобы ограничить вход в правах пользователей с CLP и ACL для чтения некоторых данных, но как запретить кому-нибудь напишите сценарий, который будет использовать наши APP_ID и JS_KEY (что он мог получить только со вкладки «Сеть» отладчика), а затем логин с действительными учетными данными и переполнение базы данных синтаксиса с некоторыми фиктивными данными? Какие способы предотвращения этого вы знаете?

Поблагодарите ваши идеи.

ответ

1

Несколько вопросов, которые следует помнить при использовании синтаксического анализа.

  • Не записывайте главный ключ в исходные коды клиентов. Им это не нужно.
  • Используйте ACL в своем коде.
  • Используйте Parse Server 2.2.1 или выше, чтобы наслаждаться CLP.
  • Установите enableAnonymousUsers в значение false, которое предотвращает анонимные вызовы API.
  • Измените файл index.js, чтобы использовать параметр Разрешить создание класса клиента. Отключить на стадии производства.

Соответствующий фрагмент кода в index.js теперь выглядит следующим образом:

var api = new ParseServer({ 
    databaseURI: databaseUri || 'mongodb://localhost:27017/dev', 
    cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js', 
    appId: process.env.APP_ID || 'myAppId', 
    masterKey: process.env.MASTER_KEY || '', //Add your master key here. Keep it secret! 
    serverURL: process.env.SERVER_URL || 'http://localhost:1337/parse', // Don't forget to change to https if needed 
    enableAnonymousUsers: process.env.ANON_USERS || false, 
    allowClientClassCreation: process.env.CLIENT_CLASS_CREATION || false, 
    liveQuery: { 
    classNames: ["Posts", "Comments"] // List of classes to support for query subscriptions 
    } 
}); 
+0

Спасибо за ваши очки, большинство из них у нас уже есть, но некоторые другие будут проверять! Кстати, может быть, вы знаете какое-то программное обеспечение для работы на синтаксическом сервере, которое могло бы фильтровать запросы по частоте в зависимости от url, IP-адреса пользователя и других параметров? Я думаю, что будет хорошей идеей дополнительно защитить сайт от DDoS. – Ratmir

+1

@ Ratmir есть множество вещей, которые вы можете сделать сверх и выше, чтобы предотвратить атаки и грубую силу и т. Д. Такие вещи, как экспресс-грубые и другие пакеты промежуточного программного обеспечения. На NPM есть несколько пакетов, посвященных этому! – Cliffordwh

Смежные вопросы