2016-11-01 3 views
0

Я немного смущен информацией о безопасности jQuery AJAX. Я разрабатываю ADD-ON для CMS. Есть jQuery AJAX для PHP-файла EXECUTE.PHP. Теперь я хотел бы продать мою ADD-ON и вот вопросы:jQuery AJAX - ограничения, безопасность, защита от перекрестных доменов

  1. My ADD-ON будет покупать два клиента A)John (nice guy), B)Bruce (the hacker). Они знают структуру моего кодирования, расположение файлов, содержимое файлов - ВСЕ. Что, если Брюс изменит вызовы AJAX в файл EXECUTE.PHP сервера Джона. Брюс знает, что CMS установлена ​​на WWW.DOMAIN-NAME.COM/CMS, поэтому он может подозревать местоположение EXECUTE.PHP на сервере Джона. Можно ли сделать это? Файл EXECUTE.PHP может удалять записи в БД - так ли Брюс способен удалить все записи БД с помощью цикла, как "DELETE FROM ... WHERE ID = [1, 2, 3 ..]"? Возможно ли это с перекрестным доступом к домену (у Джона есть собственный домен, а у Брюса есть собственный и другой домен)? Что я могу сделать, чтобы это предотвратить? Существуют ли другие риски?
  2. Когда Брюс позвонит EXECUTE.PHP на сервер Джона, а файл EXECUTE.PHP возвращает адрес через $_SERVER['REQUEST_URI'] - какой адрес он вернет. Это будет адрес Джона или адрес Брюса, есть вызов AJAX?

Благодарим вас за ответы и помощь.

+0

Боюсь, что это, скорее всего, будет закрыто как вопрос, на который нельзя ответить, как просто обсуждаемый. SO больше для вопросов, специфичных для кода. – Utkanos

+0

Добавьте код, чтобы мы могли ясно понимать – Firefog

ответ

0

Первое, что нужно иметь в виду, JQuery - это клиентская сторона. Мы не можем обеспечить его, потому что любой может получить к нему доступ. Доступны все логики, методы, кодирование.

Для методологии перекрестных доменов для этого есть два метода. 1. JSONP 2. CORS

Попробуйте взглянуть на это и использовать соответствующий, а не публиковать его.

0

Прежде всего, ваш execute.php -файл должен иметь чеки, чтобы узнать, доступен ли какой-либо доступ из того же домена, в котором он сейчас находится. Затем он должен проверить и посмотреть, доступен ли доступ от зарегистрированного пользователя с правами администратора (который я предположим, что необходимо изменить базу данных или, по крайней мере, нужно будет), и что имя пользователя, которое используется, является тем, которое зарегистрировано (и что пользователь фактически зарегистрирован). Это предотвратит большинство проблем, которые вы упомянули. Можно манипулировать любыми манипуляциями с данными, лучшим решением является сделать его настолько безопасным, насколько возможно, возможно, разрешив выбор пользовательских логинов с доступом в админ-интерфейсе плагина. Таким образом, вы можете определить, какой пользователь должен иметь доступ для внесения изменений.

REQUEST_URI можно подделать, но в качестве стандарта он отобразит IP-адрес hacker.

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